新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LabVIEW數(shù)據(jù)記錄和存儲(chǔ)(四)—XML文件

LabVIEW數(shù)據(jù)記錄和存儲(chǔ)(四)—XML文件

作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò) 收藏

  1. Flatten To XML:將LabVIEW中的數(shù)據(jù)轉(zhuǎn)化為符合XML語(yǔ)言規(guī)范的XML字符串。這種轉(zhuǎn)換是根據(jù)預(yù)定義的XML Schema文件實(shí)現(xiàn)的,默認(rèn)路徑為vi.libUtilityLVXMLSchema.xsd。目前LabVIEW并不支持自定義的XML Schema,也不支持LabVIEW對(duì)某個(gè)數(shù)據(jù)的自定義標(biāo)記。
  2. Unflatten From XML:這是與Flatten To XML作用相反的函數(shù),它根據(jù)XML Schema將XML字符串轉(zhuǎn)化為L(zhǎng)abVIEW可識(shí)別的數(shù)據(jù)類型。
  3. Write to XML File:將XML字符串寫(xiě)入XML文件中。
  4. Read From XML File:從XML文件中讀取XML字符串。
  5. Escape XML:將特殊字符串轉(zhuǎn)換為符合XML語(yǔ)法的字符。它可以將<、>、&、、"轉(zhuǎn)換為、>、、'、。
  6. Unescape XML:與Escape XML函數(shù)的功能相反。


圖 19 LabVIEW Schema函數(shù)選板
圖 20是利用圖 19所示的函數(shù)將LabVIEW中產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換為XML字符串并寫(xiě)入XML文件中。LabVIEW會(huì)自動(dòng)根據(jù)XSD文件將double、string和cluster數(shù)據(jù)轉(zhuǎn)換為XML字符串,而程序員無(wú)法自定義轉(zhuǎn)換的具體方式和內(nèi)容。


圖 20 將LabVIEW數(shù)據(jù)類型轉(zhuǎn)換為XML文件
將XML文件中的字符串轉(zhuǎn)換為L(zhǎng)abVIEW中的數(shù)據(jù)類型,只需要使用LabVIEW Schema中的函數(shù)就可以了,如圖 21所示。


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


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


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


圖 24 使用XPath表達(dá)式獲取address元素值
事實(shí)上,XML本身就是一門內(nèi)涵豐富的語(yǔ)言,程序員可以使用它存儲(chǔ)和傳輸具有復(fù)雜結(jié)構(gòu)的數(shù)據(jù)。雖然XML在很多方面都優(yōu)于ini文件,但是ini文件由于其便捷的操作性仍然被大量用于應(yīng)用程序的配置應(yīng)用中。

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉