使用xpath时xml出错。与元素类型“value”关联的属性“xsi:type”的前缀“xsi”未绑定

时间:2015-05-28 12:07:54

标签: xml xpath

使用此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

的网络服务

1 个答案:

答案 0 :(得分:1)

简短的回答是,您需要以某种方式将xsi前缀的定义添加到XML文档中。

通常,XML解析器仅适用于格式良好的XML文档,格式良好的XML具有定义的所有名称空间前缀。尽管广泛使用,xsi前缀也不例外,假设只有xml前缀(is the xsi: prefix assumed to be known in XML?)。