【发布时间】:2021-05-31 03:56:17
【问题描述】:
我是 XQuery 的新手,正在尝试学习如何将它与 BaseX 一起使用。
我有这个包含 program 的多个元素的 xml:
<program id="4565">
<name>Musiken i P3</name>
<url>http://sverigesradio.se/sida/default.aspx?programid=4565</url>
<editor>Anna-Karin Larsson</editor>
<channel>164</channel>
<category>5</category>
</program>
到目前为止,我已经明白我可以获得例如编辑器的不同值,例如:
let $vals := $sr/sr/programs/program/editor
let $uniqe-items := distinct-values($vals)
for $vals in $uniqe-items
order by $vals
return <li>{string($vals)}</li>
但是,当我这样做时,我只能得到编辑的名字,我不明白我是如何检查这样的:
let $vals := $sr/sr/programs/program/editor
let $uniqe-items := distinct-values($vals)
for $vals in $uniqe-items
where $vals/channel = "132"
order by $vals
return <li>{string($vals)}</li>
我在想我可以做类似$vals/../channel 之类的事情来返回频道属性,但事实并非如此。
【问题讨论】:
-
是 XBase 还是 BaseX?
-
@ChristianGrün 我的错,BaseX 是正确的
-
我仍然需要了解您希望如何处理不同的结果。例如,如果 3 个带有
Anna-Karin Larsson的程序中有 2 个具有频道 132,那么结果应该如何?如果您添加一个完整的输入示例(可能最小化,即没有无助于理解的元素,但有超过 1 个程序元素)和您的问题的预期结果,这可能会有所帮助。提前致谢。 -
很高兴看到 Yitzhak Khabinsky 可以提供帮助。
-
@ChristianGrün 很抱歉,我对此有点着急,所以忘记了您的评论。非常感谢您的时间和帮助。我肯定会在下一个问题上跟进这个问题!