您好我有一个类似
的XML<Movies>
<Movie>
<Title>$#*! My Dad Says</Title>
<Year>2010</Year>
<OtherTitles>
<OtherTitleName>Beep My Dad Says</OtherTitleName>
<Year>2010</Year>
<Country>USA</Country>
<TitleType>alternative title</TitleType>
<OtherTitleName>Shit My Dad Says</OtherTitleName>
<Year>2010</Year>
<Country>USA</Country>
<TitleType>uncensored intended title</TitleType>
<OtherTitleName>Shit! My Dad Says</OtherTitleName>
<Year>2013</Year>
<Country>Germany</Country>
<TitleType>imdb display title</TitleType>
</OtherTitles>
</Movie>
</Movies>
我正在尝试将其每个电影的OtherTitleName和年份显示为这样 -
Beep My Dad Says, 2010
Shit! My Dad says, 2010
我试过使用连接但是我得到了预期的错误项,找到了序列。
如何循环浏览每个项目的标题和年份?
编辑:我试过像这样的Xquery。 for $n in Movies//Movie//OtherTitles
let $d := ($n/OtherTitleName/text(),$n/Year/text())
return $d
// let $d := concat($n/OtherTitleName/text(),$n/Year/text()) Gives me error
答案 0 :(得分:2)
您可以使用XPath返回每个OtherTitleName
元素与对应的Year
元素的串联,如下所示:
//OtherTitleName/concat(.,following-sibling::Year[1])
答案 1 :(得分:1)
您可以使用以下代码获取上述结果。
let $OtherTitleName := $xml/Movie/OtherTitles/OtherTitleName/text()
let $Year := $xml/Movie/OtherTitles/Year/text()
for $each at $pos in $OtherTitleName
return concat($each, ", ", $Year[$pos])