我发现a similar question on SO,然而,这似乎不正是我想要实现:如何使用XPath通过TextContent过滤元素?逐轴获取父母?
说,这是一个示例XML文件:
<root>
<item>
<id isInStock="true">10001</id>
<category>Loose Balloon</category>
</item>
<item>
<id isInStock="true">10001</id>
<category>Bouquet Balloon</category>
</item>
<item>
<id isInStock="true">10001</id>
<category>Loose Balloon</category>
</item>
</root>
如果我想获得的是“过滤”子集这个XML中的元素元素,我如何使用XPath表达式来直接解决这个问题?
XPathExpression expr = xpath.compile("/root/item/category/text()");
现在我知道这将评估从类别所有的TextContent的集合,然而,这意味着我必须使用一个集合来存储的值,然后进行迭代,然后回去抢其他相关诸如物品ID之类的信息。
另一个问题是:我该如何正确引用父节点?
说,这个xpath表达式会让我收集所有的id节点,对吧?但我要的是项目节点集合:
XPathExpression expr = xpath.compile("/root/item/id[@isInStock='true']");
我知道我应该用“父”轴来指代,但我不能作出正确的...
是否有做这种事情的更好方法?现在学习w3cschools教程吧...
对不起,我是Java中XPath的新手,并且非常感谢。
良好问题(+1)。查看我的答案,了解您需要的正确XPath表达式。 – 2010-06-11 02:13:31