在LabVIEW中解析XML文件
- 更新时间2025-08-27
- 阅读时长6分钟
可扩展标记语言(XML)是一种独立于平台的标准化统一标记语言(SGML),可用于存储和交换信息。使用XML文档时,可使用解析器提取和操作数据,而不必直接转换XML格式。例如,文档对象模型(DOM)核心规范定义了创建、读取和操作XML文档的编程接口。DOM核心规范还定义了XML解析器必须支持的属性和方法。LabVIEW中的XML解析器是使用DOM的Xerces 2.7解析器。
使用XML解析器和XML解析器VI和节点读取、写入或操作XML文档。
XML解析器VI可在LabVIEW中访问跨平台的XML解析器,如下列程序框图所示。
关于XML解析器VI的范例,见labview\examples\File IO\XML\Parse XML目录。
查找相关范例
NewVI打开一个XML解析器会话,并返回一个XML文档引用。可创建一个XML文档,加载现有文档至XML解析器,或配置文档设置。
如要对现有文件进行操作,使用加载文件方法将XML文档加载至内存。LabVIEW可访问XML文档,除非文档中有错误,使XML解析器无法解析文档。解析错误输出端将显示与XML相关的错误。
使用获取XML(优化打印)方法,可将XML文档的内容打印为易读的字符串。优化打印在XML数据的行结束符之后添加了空白,使得文档更易读。如不需要使用优化打印功能,可使用获取XML方法。在上一个程序框图中,XML输出端为XML文档的内容。
关闭VI将关闭XML文档引用并返回VI遇到的任何错误。
验证XML文档
XML解析器可配置为确定某个XML文档是否有效。如文档与外部词汇表相符合,则该文档为有效文档。在LabVIEW解析器中,外部词汇表可以是文档类型定义(DTD)或模式(Schema)。
有的解析器只解析XML文件,但是加载前不会验证XML。LabVIEW中的解析器是一个验证解析器。验证解析器根据DTD或模式检验XML文档,并报告找到的非法项。必须确保文档的形式和类型是已知的。使用验证解析器可省去为每种文档创建自定义验证代码的时间。
XML解析器在加载文件方法的解析错误中报告验证错误。
| 注:XML解析器在LabVIEW加载文档或字符串时验证文档或XML字符串。如对文档或字符串进行了修改,并要验证修改后的文档或字符串,请使用加载文件或加载字符串方法重新加载文档或字符串。解析器会再一次验证内容。 |
关于使用加载文档方法的范例,见labview\examples\File IO\XML\Parse XML目录下的Load XML with Parser API VI。
配置XML解析器
如要激活所有的功能,则必须配置XML解析器的所有实例。可通过设置文档类的属性,配置解析器。
在程序框图上放置属性节点(XML),查看可用的属性。属性节点(XML)包括下列属性和方法:
- 处理命名空间 - 允许用户启用或禁用XML解析器处理命名空间。默认为TRUE,即XML解析器执行其名称空间规范的限制条件。
- 处理模式 - 允许用户启用或禁用XML解析器处理模式(schema)。默认为FALSE,即XML解析器不处理任何模式。如该属性设置为TRUE,必须启用处理名称空间。
- 加载外部DTD - 允许用户启用或禁用外部DTD的加载。默认为TRUE,即XML解析器允许用户加载外部DTD。如设置“验证加载”属性为始终或自动,解析器将忽略该属性并始终加载DTD。
- 保留空格 - 允许用户指定验证解析器是否将可忽略空格作为文本节点。默认为TRUE,即将可忽略空格作为DOM树中的文本节点。如将该属性设置为FALSE,XML解析器将忽略所有空格,不将这些空格加入DOM树中。

注:只有进行验证时,XML解析器才忽略空格。其他情况下,解析器将空格作为子节点。例如,标记的第一个子元素可能为空格,而不是下一个元素。 - 完整模式检查 - 允许用户设置完全模式限制检查。只有将“加载时验证”属性设置为始终或自动时,该属性才有效。默认为FALSE,即运行部分限制检查。完全限制检查消耗的时间和内存较多。
- 加载时验证 - 允许用户设置XML解析器使用的验证方法。可从下列枚举值中选择一项:
- 自动 -(默认)如解析器检测到任何内部或外部DTD子集时,开始检验。
- 从不 - 关闭检验。

注:如将该属性设置为“从不”,将“加载外部DTD”属性设置为TRUE,LabVIEW将解析文档,但不返回验证错误。 - 始终 - 启用验证。
关于XML解析器VI的范例,见labview\examples\File IO\XML\Parse XML目录。
查找相关范例
查询XML文档
XML Path Language (XPath)是定位XML节点(例如,元素、属性、文本等等)的语言。使用获取第一个匹配节点VI找到第一个匹配指定XPath表达式的节点。使用获取所有匹配的节点VI找到第一个匹配指定XPath表达式的节点。这些VI使用用户指定的上下节点查找节点。上下节点描述了LabVIEW执行XPath查询在XML文档中的位置。因此,查询XML文档时可指定相对或绝对XPath表达式。
LabVIEW支持World Wide Web Consortium (W3C)制定的XPath 1.0。
关于使用获取所有匹配节点VI的范例,见labview\examples\File IO\XML\Parse XML目录下的Parse XML String for Multiple Nodes VI。