我一直在使用Labview的原生XML解析器来读取XML文档。事实证明,它对于大文件来说太慢了。因此,我试图使用LibXML因为它似乎很受欢迎。但是,我遇到了名称空间问题。我有一个第三方XML文档,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<foo xmlns="urn:foo_Schema_V3">
<bar>
<fooID description="XML Test 170731"></fooID>
<barNumber>60</barNumber>
</bar>
</foo>
并希望使用使用XPath的Labview选择 barNumber 。
内容文字应为 60 ,但它仍为空。我读了一下,并假设这是由于LibXML中的命名空间问题。作为测试,我将XML中的第二行更改为
<foo xmlns:cliff="urn:foo_Schema_V3">
突然,即使在Labview中甚至没有提到悬崖,XPath表达也能正常工作。
问:如何在没有名称空间前缀的情况下选择我想要的节点?
更新:我已经开始使用了
/*[local-name()='foo']/*[local-name()='bar']/*[local-name()='barNumber']
,这不是优雅的,并且不解释为什么节点在没有前缀的情况下无法选择。