我的XPath有点生疏...假设我有这个简单的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<States xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<States>
<StateProvince name="ALABAMA" abbrev="AL" />
....
<StateProvince name="AMERICAN SAMOA" abbrev="AS" territory="true"  />
</States>
</States>

我想运行一个简单的XPath查询来解析所有的真实状态(所以不要拉入territory = true的状态)。我试过\ StateProvince [@territory!='true']但是我得到了零。其他变化似乎失败了。这似乎应该很简单,但找不到我想要的东西。

任何帮助表示感谢。

有帮助吗?

解决方案

选择所需元素的一个XPath表达式

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&的 <代码> / * /州/ StateProvince [否(@领土= '真')]

请注意 必须尽可能避免使用 // 缩写,因为它会导致整个文档(根据要扫描的上下文节点

上述XPath表达式通过考虑结构,避免使用 // 缩写最初提供的XML文档。

只有当XML文档的结构完全未知时(并且XPath表达式打算用于许多结构未知的XML文档),才应使用 // 缩写被视为

其他提示

你非常接近:

//StateProvince[not(@territory) or @territory != 'true']

应该得到你想要的结果。

这应该有效:

//StateProvince[not(@territory='true')]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top