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

專注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視頻,里面的課程內容詳細,通俗易懂,適合小白學習,希望對大家能夠有所幫助。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一色屋成人免费精品网 | 婷婷久久综合九色综合绿巨人 | 曰皮全部过程视频免费高清 | 久久久噜噜噜久久网 | 欧美一区二区三区激情视频 | 在线毛片免费 | 伊人影视在线观看日韩区 | 麻豆国产三级在线观看 | 亚洲国产精品乱码一区二区三区 | 青娱乐伊人 | 日韩午夜高清福利片在线观看 | 欧美日韩高清一区 | 在线成人a毛片免费播放 | 一个人看的视频免费高清在线 | 很很色在线视频 | 全黄一级片 | 成人免费专区 | 欧美区一区 | 午夜影院色 | 法国18sexxxx性xxx | 免费精品一区二区三区第35 | 欧美八区| 在线a亚洲视频播放在线观看 | 日本高清不卡码 | 成人免费精品视频 | 欧美成人精品第一区二区三区 | 天天干天天拍天天射 | 男人天堂2020手机在线 | 国产99精品视频 | 最近的免费中文字幕1 | 手机看片一区 | 操操操网 | 91啦中文成人 | 国产一级一片免费播放视频 | 一级做a爱片特黄在线观看yy | 午夜 dy888理论久久 | 欧美精品束缚一区二区三区 | 日韩黄漫啪啪免费动漫 | 亚洲第一页在线视频 | 日韩免费在线播放 | freexxxx性中国hd |