我有一个动态生成的XML文档,我需要一个函数来消除它的任何重复节点.
我的功能如下:
declare function local:start2() { let $data := local:scan_books() return{$data} };
示例输出是:
XML in 24 hours Some Guy XML in 24 hours Some Guy
我只想要我的书籍根标签中的一个条目,还有其他标签,比如说那里的小册子也需要删除重复项.有任何想法吗?
更新了以下评论.通过唯一节点,我的意思是删除多个具有完全相同内容和结构的节点.
一种更简单,更直接的单行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
在所有冠军.
你可以使用内置distinct-values()
功能......