我有以下XML文档(此示例来自W3schools.com并进行了修改):
<bookstore>
<book>
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<section>Children</section>
<section>Recent</section>
<year>2005</year>
<price>30.00</price>
</book>
<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<section>Children</section>
<section>Recent</section>
<year>2005</year>
<price>29.99</price>
</book>
<book>
<title lang="en">Learning XML 2: The Reckoning</title>
<author>Erik T. Simpson</author>
<section>Terror</section>
<year>2003</year>
<price>9.95</price>
</book>
</bookstore>
如何在整个文档中检索SECTION是唯一的书籍并且没有重复?我尝试了以下XQuery(我需要一个XQuery):
for $x in doc("books.xml")/bookstore/book/
where distinct-values($x/section)
return $x
但它似乎返回所有这些没有重复,我想要检索最后一个节点,因为是唯一一个有该节的。
有什么想法吗?非常感谢您的支持和帮助!
答案 0 :(得分:2)
如果您选择/bookstore/book[not(section = (preceding-sibling::book/section | following-sibling::book/section))]
,则会选择所有book
个元素,这些元素没有section
等于其他section
元素的book
个。