使用此xpath表达式://items/item[@key='NAME']/value/text()
on ..
<test>
<items>
<item key="USGAE">
<value xsi:type="ns9:string">SomeUse</value>
</item>
<item key="NAME">
<value xsi:type="ns9:string">TheName</value>
</item>
</items>
</test>
给出了这个错误:
Error on line 4: The prefix "xsi" for attribute "xsi:type" associated with an element type "value" is not bound.
然而在..上使用相同的xpath
<test>
<items>
<item key="USGAE">
<value>SomeUse</value>
</item>
<item key="NAME">
<value>TheName</value>
</item>
</items>
</test>
给了我正确的价值:TheName
为什么会这样?服务器实际上返回XML
的第一个片段,即每个xsi
内有value
有解决方法吗?我无权访问生成此XML
答案 0 :(得分:1)
简短的回答是,您需要以某种方式将xsi
前缀的定义添加到XML文档中。
通常,XML解析器仅适用于格式良好的XML文档,格式良好的XML具有定义的所有名称空间前缀。尽管广泛使用,xsi
前缀也不例外,假设只有xml
前缀(is the xsi: prefix assumed to be known in XML?)。