【发布时间】:2017-05-04 23:46:48
【问题描述】:
我是 XML / Xquery 的新手,无法弄清楚这一点。 在下面提供的 XML 文档中,我试图找到所有写过同名书的作者,以及与该书相关的评级。我遇到的问题是,我的查询正在返回一位作者的所有评分,该作者可能拥有多本书以及正在寻找的那本书。
XML 文档:
<lib>
<author name="Sally J">
<book>
<name>ABC</name>
<rating>6</rating>
</book>
<book>
<name>Monsters</name>
<rating>2</rating>
</book>
<book>
<name>Spring Poems</name>
<rating>5</rating>
</book>
</author>
<author name="Samantha G">
<book>
<name>ABC</name>
<rating>2</rating>
</book>
<book>
<name>Cooking101</name>
<rating>7</rating>
</book>
<book>
<name>Aliens?</name>
<rating>10</rating>
</book>
</author>
</lib>
我的查询:
for $x in doc("lib.xml")/lib/author
where $x/book/name="ABC"
return ($x/@name, $x/book/rating)
它输出的是:
莎莉·J
6
2
5
萨曼莎 G
2
7
10
当我只想为每个拥有“ABC”的作者评分时。我确信解决方案很简单,但我只是对 Xquery 中的工作原理缺乏具体的了解。
【问题讨论】: