gpt4 book ai didi

xpath - XQuery/XPath : Using count() and max() function for return of element with highest count

转载 作者:行者123 更新时间:2023-12-03 15:25:08 24 4
gpt4 key购买 nike

我有一个包含作者和编辑者的XML文件。

<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="file:textbook.rnc" type="compact"?>
<books xmlns="books">

<book ISBN="i0321165810" publishername="OReilly">
<title>XPath</title>
<author>
<name>
<fname>Priscilla</fname>
<lname>Walmsley</lname>
</name>
</author>
<year>2007</year>
<field>Databases</field>
</book>

<book ISBN="i0321165812" publishername="OReilly">
<title>XQuery</title>
<author>
<name>
<fname>Priscilla</fname>
<lname>Walmsley</lname>
</name>
</author>
<editor>
<name>
<fname>Lisa</fname>
<lname>Williams</lname>
</name>
</editor>
<year>2003</year>
<field>Databases</field>
</book>

<publisher publishername="OReilly">
<web-site>www.oreilly.com</web-site>
<address>
<street_address>hill park</street_address>
<zip>90210</zip>
<state>california</state>
</address>
<phone>400400400</phone>
<e-mail>oreilly@oreilly.com</e-mail>
<contact>
<field>Databases</field>
<name>
<fname>Anna</fname>
<lname>Smith</lname>
</name>
</contact>
</publisher>
</books>
我正在寻找一种方法,让最常被列为作者和/或编辑的人返回。该解决方案应该与XQuery 1.0(XPath 2.0)兼容。
我当时正在考虑使用FLWOR查询来遍历所有作者和编辑者,然后对唯一作者/编辑者进行计数,然后返回与最高计数匹配的作者/编辑者。但是我还没有找到合适的解决方案。
有没有人对如何编写这样的FLWOR查询有任何建议?
可以使用XPath以更简单的方式完成此操作吗?

最佳答案

这可能会有所帮助:

declare default element namespace 'books';
(for $name in distinct-values($doc/books/*/*/name)
let $entries := $doc/books/*[data(*/name) = $name]
order by count($entries) descending
return $entries/*/name)[1]

关于xpath - XQuery/XPath : Using count() and max() function for return of element with highest count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com