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

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

XML文件讀取的方法

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

本課將向您展示如何加載 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視頻,里面的課程內容詳細,通俗易懂,適合小白學習,希望對大家能夠有所幫助。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产一级毛片网站 | 国产精品一区二区不卡的视频 | 午夜男人一级毛片免费 | 美女天天射 | 欧美性xxx免费看片 欧美性导航 | 日本夜夜| 天天干夜夜爱 | 欧美日本一二三区 | 国产精品久久久久久久久免费观看 | 亚洲爽| 成人动漫在线免费观看 | 另类异族videosex太狠了 | 久青草国产97香蕉在线视频xx | 国产精品1024在线永久免费 | 天天做天天爱天天做天天吃中 | 综合网久久 | 亚洲国产精品一区 | 综合网激情五月 | 久久久久久久99精品免费观看 | 国产国语一级a毛片高清视频 | 97欧美在线看欧美视频免费 | 91成人免费| 天堂色| 欧美午夜大片 | 一个人看的在线www视频 | 国产免费一级片 | 亚洲欧美一区二区三区在线观看 | 456亚洲人成影院在线观 | 成人a毛片在线看免费全部播放 | 亚洲日日做天天做日日谢 | 欧美成视频| 国产免费怡红院视频 | 免费三级黄色 | 国产精品综合久成人 | freexxx性欧美hd | 在线中文字幕第一页 | 天天摸夜夜摸狠狠摸夜夜摸 | 99re视频精品全部免费 | 日韩午夜免费视频 | 黄色高清视频在线观看 | 国产偷倩视频 |