我有一个任务是创建一个 xml 文件并使用 XQuery 对其进行查询。该文件大致如下所示:
<library>
<book>
<title>Title1</title>
<author>Author1</author>
<author>Author2</author>
<subject>Subject1</subject>
</book>
<book>
<title>Title2</title>
<author>Author3</author>
<subject>Subject1</subject>
</book>
</library>
对于每个作者,我应该返回书名,所以显然 Title 1 应该返回两次。
我一直在尝试这样的事情:
let $a:=doc("/home/user/library.xml")/library/book
for $x in $a/title, $y in $a/author
return $x
我得到的结果是: Title1 Title2 Title1 Title2 Title1 Title2
我看到问题在于,对于每个作者,我都会返回每本书的标题,但我不确定如何让它只返回与特定作者相对应的书名。有什么建议么?
谢谢!