黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 XML文件讀取的方法

XML文件讀取的方法

更新時間:2022-01-21 10:48:37 來源:動力節點 瀏覽2017次

本課將向您展示如何加載 XML 文件并訪問數據以在您的應用程序中使用。XML 文件對于存儲首選項設置、使用 Web 以及需要與其他程序共享數據的情況非常有用。

LiveCode 提供了一個功能完善的庫來處理 XML 文件,這可能需要一點時間來適應,但使用起來非常簡單。

使用按鈕和字段創建堆棧

我們首先創建一個堆棧并將一個按鈕和一個字段拖到它上面。該按鈕將包含我們用于讀取 XML 文件的 LiveCode 代碼。該字段將包含從文件中讀取的結果數據,將字段名稱設置為“信息”。將此堆棧保存在您的桌面上。

創建一個 XML 文件以用作示例

使用 Windows 上的記事本或 Mac OS X 上的 TextEdit 創建示例首選項 XML 文件。該文件應該是純文本。在桌面上將文件另存為“Preferences.xml”。XML 數據如下所示:

<preferences>
  <textColor>blue</textColor>
  <textSize>16</textSize>
  <introMessage size="18">Welcome guest, please click the button below to log in</introMessage>
  <recentDocuments>
    <recentDocument>C:/Documents and Settings/Administrator/Documents/DraftReport.txt</recentDocument>
    <recentDocument>C:/Reports/2009Final.txt</recentDocument>
    <recentDocument>C:/Documents and Settings/Administrator/Desktop/Temp.txt</recentDocument>
  </recentDocuments>
</preferences>

告訴按鈕在用戶單擊時加載文件

通過選擇它來編輯按鈕的腳本,然后單擊主菜單欄中的“腳本”按鈕。對于本例,我們將加載一個包含應用程序首選項的 XML 文件。

使用以下代碼開始腳本:

1.點擊按鈕時,加載首選項并將它們放入字段中

on mouseUp
   loadPreferences
end mouseUp

2.加載首選項文件

加載首選項文件有兩個部分。第一部分是將文件讀入內存并創建一個 XML“樹”。第二部分是處理樹并從中提取數據。

此函數讀取 XML 文件,并返回樹。樹表示為一個數字,實際的樹結構和數據由 LiveCode 管理,因此我們無需擔心。

command loadPreferences
   local tTree
   put readPreferencesToXMLTree() into tTree
   if tTree is empty then
      exit loadPreferences
   end if 
   # Read the preferences we require from the tree and display them.
   processPreferencesTree tTree
 
   # Close the XML tree. 
   # This will free up the memory that the tree was using and prevent our application
   # using more memory than it needs or "leaking" memory by creating multiple trees
   # without closing any of them.
   revXMLDeleteTree tTree
end loadPreferences

請注意,這段代碼還沒有做任何事情,因為我們還沒有實現函數 readPreferencesToXMLTree 和命令 processPreferencesTree。

從磁盤讀取 XML 文件

接下來,我們實現一個函數來讀取 XML。這分兩步完成,首先將文件讀入一個變量,就像任何其他文本文件一樣,其次,從文件中創建一個 XML“樹”。這棵樹允許我們輕松地操作 XML 數據。

添加代碼以讀取 XML 文件,如下所示。

private function readPreferencesToXMLTree
   # Find the XML file on disk. 
   # This is for now assumed to be in the same location as the stack / application.
   # Note that we restore the itemDelimiter to comma (its default value) afterwards.           	
   # This is not essential but its good practice to avoid tricky bugs 
   # that can arise due to unexpected delimiter values.
   set the itemDelimiter to slash
   local tPreferencesFile
   put item 1 to -2 of the effective filename of this stack & "/Preferences.xml" into tPreferencesFile
   set the itemDelimiter to comma 
   # Read the preferences data from the file into a variable. 
   # Always check for the result when reading files
   # as its possible that the file may have been deleted or moved.
   local tPreferencesData, tResult
   put url ("file:" & tPreferencesFile) into tPreferencesData
   put the result into tResult
   if tResult is not empty then
      answer error "Failed to read preferences file at location: " & tPreferencesFile
      return empty
   end if 
   # Create the XML "tree" from the data, 
   # checking to make sure that the file has loaded properly.
   # The revCreateXMLTree function will return a number 
   # (the tree's "handle" or "id") if it succeeds,
   # otherwise it will return a message saying why it failed.
   local tTree
   put revXMLCreateTree(tPreferencesData, false, true, false) into tTree
   if tTree is not an integer then
      answer error "Failed to process preferences file with error: " & tTree
      return empty
   end if 
   return tTree
end readPreferencesToXMLTree

從 XML 文件中提取信息并將其顯示在字段中

一旦我們有了 XML 樹,最后一步是使用 LiveCode 的 XML 庫從中獲取所需的信息。我們使用對 XML 庫的一系列調用來從樹中提取每條信息。

private command processPreferencesTree pTree
   # Extract the text color and text size preferences. 
   # These are simple nodes in the XML file,
   # we can get what is inside them using the revXMLNodeContents function
   # This function will return a string beginning with "xmlerr," 
   # if it fails, but we don't check this 
   # here as we created the file and we know it won't fail.
   local tTextColor
   put revXMLNodeContents(pTree, "preferences/textColor") into tTextColor 
   local tTextSize
   put revXMLNodeContents(pTree, "preferences/textSize") into tTextSize 
   # Extract the introductory message preference. 
   # This node has an attribute. We extract the contents and the 
   # attribute in two separate calls. 
   # The function revXMLAttribute allows us to read attributes from XML files,
   # its exactly the same as revXMLNodeContents, 
   # except that you also need to tell it which attribute you want.
   local tIntroMessage
   put revXMLNodeContents(pTree, "preferences/introMessage") into tIntroMessage 
   local tIntroMessageSize
   put revXMLAttribute(pTree, "preferences/introMessage", "size") into tIntroMessageSize 
   # Extract the recent documents list. 
   # This is a nested list of nodes, which could have any number of items.
   # First, we get a list of the recent documents, then we can loop 
   # through them and get each one in turn.
   # The revXMLChildNames function is useful for returning a list of nodes like this.  
   # The last parameter is important as it tells the function to return a unique
   # specifier for each node, allowing us to access them correctly. This will
   # look something like:
   #	recentDocument[1]
   #	recentDocument[2]
   #	recentDocument[3]
   local tRecentDocuments
   put revXMLChildNames(pTree, "preferences/recentDocuments", return, "recentDocument", true) into tRecentDocuments 
   # To get each document, we just use revXMLNodeContents again. 
   # However here we concatentate the name of each node
   # with the path that all recent document nodes have in common, 
   # to get the complete path.
   local tListOfRecentDocuments
   repeat for each line tRecentDocument in tRecentDocuments
      put revXMLNodeContents(pTree, "preferences/recentDocuments/" & tRecentDocument) & return after tListOfRecentDocuments
   end repeat
   delete the last char of tListOfRecentDocuments 
   # Now we output what we read from the file to see if it worked.
   local tOutput
   put "Text Color = " & tTextColor & return after tOutput
   put "Text Size = " & tTextSize & return after tOutput
   put return after tOutput
   put "Introductory Message (size: " & tIntroMessageSize & ") = " & return after tOutput
   put tIntroMessage & return & return after tOutput
   put "Recent Documents = " & return after tOutput
   put tListOfRecentDocuments after tOutput
   set the text of field "Information" to tOutput
end processPreferencesTree

測試

測試堆棧切換到運行模式并單擊按鈕。

以上就是關于“XML文件讀取的方法”介紹,大家如果想了解更多相關知識,不妨來關注一下動力節點的Java視頻,里面的課程內容詳細,通俗易懂,適合小白學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 波多野结衣免费一区二区三区香蕉 | 奇米88888| 亚洲欧美日韩在线不卡中文 | 欧美日本高清视频在线观看 | 色视频观看 | 香蕉网站视频高清在线观看 | 欧美在线观看视频网站 | 激情五月激情 | 国产一级αv片免费观看 | 黄色一级大片视频 | 波多野结衣不卡 | 色免费视频 | 老司机69精品成免费视频 | 中国性猛交xxxxx免费看 | 91精品欧美 | a视频在线 | 国产色综合久久无码有码 | 皇色在线 | 日韩福利社 | 波多野结衣gvg | 天天爽天天碰狠狠添 | 成年人视频在线免费 | 视频在线观看一区二区三区 | 福利一区二区在线观看 | 拔擦拔擦8x华人免费久久 | www.丁香 | 成人永久福利免费观看 | 美女黄色免费看 | 亚洲综合网在线观看 | 日韩午夜免费视频 | 77成人影视 | 黄色一级片免费 | 日韩亚洲欧美性感视频影片免费看 | 成人叼嘿视频免费网站 | 欧美一级爽快片淫片高清在线观看 | 精品一区二区三区视频在线观看免 | 欧美成人亚洲国产精品 | 免费国产不卡午夜福在线观看 | 免费看黄无遮挡滚床单视频 | 成年人免费网 | 国产高清精品入口麻豆 |