久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > LabVIEW數據記錄和存儲(四)—XML文件

LabVIEW數據記錄和存儲(四)—XML文件

作者: 時間:2017-01-09 來源:網絡 收藏

  1. Flatten To XML:將LabVIEW中的數據轉化為符合XML語言規范的XML字符串。這種轉換是根據預定義的XML Schema文件實現的,默認路徑為vi.libUtilityLVXMLSchema.xsd。目前LabVIEW并不支持自定義的XML Schema,也不支持LabVIEW對某個數據的自定義標記。
  2. Unflatten From XML:這是與Flatten To XML作用相反的函數,它根據XML Schema將XML字符串轉化為LabVIEW可識別的數據類型。
  3. Write to XML File:將XML字符串寫入XML文件中。
  4. Read From XML File:從XML文件中讀取XML字符串。
  5. Escape XML:將特殊字符串轉換為符合XML語法的字符。它可以將<、>、&、、"轉換為、>、、'、。
  6. Unescape XML:與Escape XML函數的功能相反。


圖 19 LabVIEW Schema函數選板
圖 20是利用圖 19所示的函數將LabVIEW中產生的數據轉換為XML字符串并寫入XML文件中。LabVIEW會自動根據XSD文件將double、string和cluster數據轉換為XML字符串,而程序員無法自定義轉換的具體方式和內容。


圖 20 將LabVIEW數據類型轉換為XML文件
將XML文件中的字符串轉換為LabVIEW中的數據類型,只需要使用LabVIEW Schema中的函數就可以了,如圖 21所示。


圖 21 將XML文件轉換為LabVIEW數據類型
從圖 19 ~ 圖 21可以看出,將LabVIEW中的相關數據轉換為對應的XML字符串比較簡單。但是在LabVIEW中程序員如何能夠解析非LabVIEW生成的XML文檔呢?如何獲取任何一個XML文件中的XML元素和屬性呢?LabVIEW中使用Xerces 2.7解析器處理XML文檔,它需要使用到XML DOM(Document Object Model,文檔對象模型),該對象模型主要是定義了一套訪問和操作XML文檔的標準方法。


圖 22 XML Parse函數選板
本文將使用LabVIEW中的解析器解析圖 17所示的XML文件,如圖 23所示(下載)。本例希望讀取所有的AC Source儀器配置信息,首先使用Load.vi函數打開XML文件,得到DOM Document指針;然后,使用Get First Matched Node.vi函數搜索XML文件中的ACSource元素,并得到該節點的指針;使用ChildNodesArray獲取ACSource元素下所有的一級子元素,即instrument元素列表;然后依次獲取Instrument元素中的各個子元素的文本值;最后,使用Close.vi關閉打開的節點。從圖中可以看出,當ACSource元素中增加了新的儀器時,該讀取VI不需要任何修改,非常易于擴展。


圖 23 解析XML文件
需要說明的是,Get First Matched Node.vi函數XPath expression參數表示通過XPath語法定義的表達式,目前LabVIEW支持World Wide Web Consortium (W3C)制定的XPath 1.0。關于XPath的相關知識,可以參見W3C的網站或W3school網站。通過XPath語法,程序員可以非常方便地獲取某個具體的元素節點。圖 24使用XPath表達式直接獲取了XML文件中DMM元素下第1個儀器的地址值。


圖 24 使用XPath表達式獲取address元素值
事實上,XML本身就是一門內涵豐富的語言,程序員可以使用它存儲和傳輸具有復雜結構的數據。雖然XML在很多方面都優于ini文件,但是ini文件由于其便捷的操作性仍然被大量用于應用程序的配置應用中。

上一頁 1 2 下一頁

評論


技術專區

關閉