首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XPath查询结果中保留重复项

在XPath查询结果中保留重复项
EN

Stack Overflow用户
提问于 2015-03-25 08:52:18
回答 2查看 285关注 0票数 0

考虑下面的XML示例:

代码语言:javascript
复制
<books category="cat1">
   <book id="1" ... />
   <book id="2" ... />
   <book id="3" ... />
</books>

如果我使用XPath查询/books/book/parent::*/@category,我应该只收到一行:

代码语言:javascript
复制
cat1

但是,如何修改XPath查询才能返回

代码语言:javascript
复制
cat1
cat1
cat1

(意思是我想保留所有的副本)。

EN

回答 2

Stack Overflow用户

发布于 2015-03-25 16:13:34

XPath中的"/“运算符自动删除重复项。

在XPath 1.0中,您的需求有一个根本的困难:数据模型中唯一支持的组合值是节点集,并且节点集(集合)不能包含重复项。所以不存在包含重复节点的值,因此没有表达式会产生这样的结果。

票数 3
EN

Stack Overflow用户

发布于 2015-03-25 09:56:43

XPath 2.0中,您可以使用for循环:

代码语言:javascript
复制
for  $book in /books/book return $book/parent::*/@category 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29245664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档