首页 理论教育LabVIEW2012中文版虚拟仪器:XML数据处理与解析

LabVIEW2012中文版虚拟仪器:XML数据处理与解析

【摘要】:所有XML数据必须符合标准的LabVIEW XML模式。图8-82 写入XML文件函数图8-83 读取XML文件VI转换特殊字符至XML:依据LabVIEW XML模式将特殊字符转换为XML语法。图8-85 从XML还原特殊字符VI2.XML解析器XML解析器可配置为确定某个XML文档是否有效。验证解析器根据DTD或模式检验XML文档,并报告找到的非法项。XML_节点类包含其他XML类。

XML VI和函数用于操作XML格式的数据,可扩展标记语言(XML)是一种独立于平台的标准化统一标记语言(SGML),可用于存储和交换信息。使用XML文档时,可使用解析器提取和操作数据,而不必直接转换XML格式。例如,文档对象模型(DOM)核心规范定义了创建、读取和操作XML文档的编程接口。DOM核心规范还定义了XML解析器必须支持的属性和方法。XMLVI子选板如图8-78所示。

1.LabVIEW模式VI和函数

LabVIEW模式VI和函数用于操作XML格式的LabVIEW数据。LabVIEW模式子选板如图8-79所示。

(1)平化至XML:将连接至任何的数据类型根据LabVIEW XML模式转换为XML字符串。如任何含有<、>或&等字符,该函数将分别把这些字符转换为&lt;、&gt;或&amp;。使用转换特殊字符至XMLVI可将其他字符(例如,"转换为XML语法)。平化至XML函数的节点图标及端口定义如图8-80所示。

978-7-111-40983-0-Chapter08-83.jpg

图8-78 XMLVI子选板

978-7-111-40983-0-Chapter08-84.jpg

图8-79 LabVIEW模式子选板

978-7-111-40983-0-Chapter08-85.jpg

图8-80 平化至XML函数

(2)从XML还原:依据LabVIEW XML模式将XML字符串转换为LabVIEW数据类型。如XML字符串含有&lt;、&gt;或&amp;等字符,该函数将分别把这些字符转换为<、>或&。使用从XML还原特殊字符VI转换其他字符(例如,&quot;)。从XML还原函数的节点图标及端口定义如图8-81所示。

978-7-111-40983-0-Chapter08-86.jpg

图8-81 从XML还原函数

(3)写入XML文件:将XML数据的文本字符串与文件头标签同时写入文本文件。通过将数据连线至XML输入端可确定要使用的多态实例,也可手动选择实例。所有XML数据必须符合标准的LabVIEW XML模式。写入XML文件函数的节点图标及端口定义如图8-82所示。

(4)读取XML文件:读取并解析LabVIEW XML文件中的标签。将该VI放置在程序框图上时,多态VI选择器可见。通过该选择器可选择多态实例。所有XML数据必须符合标准的LabVIEW XML模式。读取XML文件VI的节点图标及端口定义如图8-83所示。

978-7-111-40983-0-Chapter08-87.jpg

图8-82 写入XML文件函数

978-7-111-40983-0-Chapter08-88.jpg

图8-83 读取XML文件VI

(5)转换特殊字符至XML:依据LabVIEW XML模式将特殊字符转换为XML语法。平化至字符串函数可将<、>或&等字符分别转换为&lt;、&gt;或&amp;。但如需将其他字符(如")转换为XML语法,则必须使用“转换特殊字符至XML”。转换特殊字符至XML VI的节点图标及端口定义如图8-84所示。

978-7-111-40983-0-Chapter08-89.jpg

图8-84 转换特殊字符至XMLVI

(6)从XML还原特殊字符:依据LabVIEW XML模式将特殊字符的XML语法转换为特殊字符。从XML还原函数可将&lt;、&gt;或&amp;等字符分别转换为<、>或&。但如需转换其他字符(如&quot;),则必须使用“从XML还原特殊字符”函数。从XML还原特殊字符VI的节点图标及端口定义如图8-85所示。

978-7-111-40983-0-Chapter08-90.jpg

图8-85 从XML还原特殊字符VI

2.XML解析器

XML解析器可配置为确定某个XML文档是否有效。如文档与外部词汇表相符合,则该文档为有效文档。在LabVIEW解析器中,外部词汇表可以是文档类型定义(DTD)或模式(Schema)。有的解析器只解析XML文件,但是加载前不会验证XML。LabVIEW中的解析器是一个验证解析器。验证解析器根据DTD或模式检验XML文档,并报告找到的非法项。必须确保文档的形式和类型是已知的。使用验证解析器可省去为每种文档创建自定义验证代码的时间。

XML解析器在加载文件方法的解析错误中报告验证错误。

注意

XML解析器在LabVIEW加载文档或字符串时验证文档或XML字符串。如对文档或字符串进行了修改,并要验证修改后的文档或字符串,请使用加载文件或加载字符串方法重新加载文档或字符串。解析器会再一次验证内容。XML解析器子选板如图8-86所示。

978-7-111-40983-0-Chapter08-91.jpg

图8-86 XML解析器子选板

(1)新建(VI):通过该VI可新建XML解析器会话句柄。新建(VI)的节点图标及端口定义如图8-87所示。(www.chuimin.cn)

978-7-111-40983-0-Chapter08-92.jpg

图8-87 新建(VI)

(2)属性节点(XML):获取(读取)和/或设置(写入)XML引用的属性。该节点的操作与属性节点的操作相同。属性节点(XML)VI的节点图标及端口定义如图8-88所示。

978-7-111-40983-0-Chapter08-93.jpg

图8-88 属性节点(XML)VI

(3)调用节点(XML):调用XML引用的方法或动作。该节点的操作与调用节点的操作相同。调用节点(XML)VI的节点图标及端口定义如图8-89所示。

978-7-111-40983-0-Chapter08-94.jpg

图8-89 调用节点(XML)VI

(4)关闭:关闭对所有XML解析器类的引用。通过该多态VI可关闭对XML_指定节点映射类、XML_节点列表类、XML_实现类和XML_节点类的引用句柄。XML_节点类包含其他XML类。关闭VI的节点图标及端口定义如图8-90所示。

978-7-111-40983-0-Chapter08-95.jpg

图8-90 关闭VI

(5)获取第一个匹配的节点:返回节点输入的第一个匹配Xpath表达式的节点。获取第一个匹配的节点图标及端口定义如图8-91所示。

978-7-111-40983-0-Chapter08-96.jpg

图8-91 获取第一个匹配的节点VI

(6)获取所有匹配的节点:返回节点输入的所有匹配Xpath表达式的节点。获取所有匹配的节点图标及端口定义如图8-92所示。

978-7-111-40983-0-Chapter08-97.jpg

图8-92 获取所有匹配的节点VI

(7)获取下一个非文本同辈项:返回节点输入节点中第一个类型为Text_Node的同辈项。获取下一个非文本同辈项VI的节点图标及端口定义如图8-93所示。

978-7-111-40983-0-Chapter08-98.jpg

图8-93 获取下一个非文本同辈项VI

(8)获取第一个非文本子项:返回节点输入节点中第一个类型为Text_Node的子项。获取第一个非文本子项VI的节点图标及端口定义如图8-94所示。

978-7-111-40983-0-Chapter08-99.jpg

图8-94 获取第一个非文本子项VI

(9)获取节点文本内容:返回结点输入结点包含的Text_Node的子项。获取节点文本内容VI的节点图标及端口定义如图8-95所示。

978-7-111-40983-0-Chapter08-100.jpg

图8-95 获取节点文本内容VI

(10)加载:打开XML文件并配置XML解析器依据模式或DTD(文档类型定义)对文件进行验证。加载VI的节点图标及端口定义如图8-96所示。

978-7-111-40983-0-Chapter08-101.jpg

图8-96 加载VI

(11)保存:保存XML文档。保存VI的节点图标及端口定义如图8-97所示。

978-7-111-40983-0-Chapter08-102.jpg

图8-97 保存VI