我必须显示每本书的所有语言。我很困惑如何做到这一点。 我不想在 / books / book / translation 中显示每种语言,但我想将它们分组到每本书中,类似于 / books / book / title ,但仅限于翻译必须显示。所以基本上我将每本书的翻译分组。
<books>
<book>
<title>Book One</title>
<translation edition="3">Greek</translation>
<translation edition="2">Chinese</translation>
<translation edition="2">French</translation>
<translation edition="1">Dutch</translation>
</book>
<book>
<title>Book Two</title>
<translation edition="2">Dutch</translation>
<translation edition="4">Chinese</translation>
<translation edition="2">Greek</translation>
<translation edition="3">Spanish</translation>
</book>
</books>
谢谢,抱歉,如果我的格式错误了。 XPath表达式的结果应该是两个结果。 第一个结果:
Greek
Chinese
French
Dutch
第二个结果:
Dutch
Chinese
Greek
Spanish
我希望这会详细阐述一些。
答案 0 :(得分:0)
以下XPath将为您提供两个项目的序列,每个项目将包含每本书籍的翻译,翻译以逗号分隔:
for $book in //book
return
string-join($book/translation, ",")
这导致:
希腊,中国,法国,荷兰 荷兰,中国,希腊,西班牙
那是你在寻找什么?如果是这样,一旦你理解了上面的XPath,你实际上可以将它缩短为:
//book/string-join(translation, ",")