考虑下面的XML示例:
<books category="cat1">
<book id="1" ... />
<book id="2" ... />
<book id="3" ... />
</books>如果我使用XPath查询/books/book/parent::*/@category,我应该只收到一行:
cat1但是,如何修改XPath查询才能返回
cat1
cat1
cat1(意思是我想保留所有的副本)。
发布于 2015-03-25 16:13:34
XPath中的"/“运算符自动删除重复项。
在XPath 1.0中,您的需求有一个根本的困难:数据模型中唯一支持的组合值是节点集,并且节点集(集合)不能包含重复项。所以不存在包含重复节点的值,因此没有表达式会产生这样的结果。
发布于 2015-03-25 09:56:43
在XPath 2.0中,您可以使用for循环:
for $book in /books/book return $book/parent::*/@category https://stackoverflow.com/questions/29245664
复制相似问题