为什么我不能使用XPath来查询所需的节点?

时间:2012-08-17 09:32:38

标签: xml xpath xml-parsing

这是XML:

<VDWSDirectoriesResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<Success>true</Success>
<TotalResult>6</TotalResult>
<PageResult>6</PageResult>
<Summary/>
<DirectoriesResult>...</DirectoriesResult>
</VDWSDirectoriesResult>

我想获得Success节点,我尝试了/VDWSDirectoriesResult/SuccessSuccess,但我仍然无法获得Success节点的值...什么我做错了吗?感谢。

1 个答案:

答案 0 :(得分:4)

您的根节点声明了一个默认命名空间:

xmlns="http://tempuri.org/"

这意味着,您的<Success>节点实际上位于该命名空间中,如果您只是在XPath表达式中编写Success,则不在XPath假定的匿名命名空间中。

根据您使用的XPath库,将有一些方法将名称空间前缀映射到名称空间URI http://tempuri.org/,然后您可以在XPath表达式中使用它。

例如,假设您将名称空间前缀tmp映射到该URI,您的XPath应该是:

/tmp:VDWSDirectoriesResult/tmp:Success