当前位置:  开发笔记 > Android > 正文

如何删除XQuery中的重复节点?

如何解决《如何删除XQuery中的重复节点?》经验,为你挑选了2个好方法。

我有一个动态生成的XML文档,我需要一个函数来消除它的任何重复节点.

我的功能如下:

declare function local:start2() {
    let $data := local:scan_books()
    return {$data}
};

示例输出是:


  
    XML in 24 hours
    Some Guy  
  
  
    XML in 24 hours
    Some Guy  
  

我只想要我的书籍根标签中的一个条目,还有其他标签,比如说那里的小册子也需要删除重复项.有任何想法吗?


更新了以下评论.通过唯一节点,我的意思是删除多个具有完全相同内容和结构的节点.



1> Dimitre Nova..:

一种更简单,更直接的单行XPath解决方案:

只需使用以下XPath表达式:

  /*/book
        [index-of(/*/book/title, 
                  title
                 )
                  [1]
        ]

例如,应用于以下XML文档时:


    
        XML in 24 hours
        Some Guy
    
    
        Food in Seattle
        Some Guy2
    
    
        XML in 24 hours
        Some Guy
    
    
        Food in Seattle
        Some Guy2
    
    
        How to solve XPAth Problems
        Me
    

上面的XPath表达式正确选择以下节点:


    XML in 24 hours
    Some Guy


    Food in Seattle
    Some Guy2


    How to solve XPAth Problems
    Me

解释很简单:对于每一个book,只选择其出现次数的一个-使得其在指数的所有图书相同的第一指标title所有冠军.



2> Travis Webb..:

你可以使用内置distinct-values()功能......

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有