所以我有以下XML文件:如何比较xml文件中的两个元素?
<!DOCTYPE music SYSTEM "music.dtd">
<music>
<songs>
<song sid = "s1" time = "2:04" year = "1994">
<title>Thriller </title>
<artist>Michael </artist>
<composers>
<composer>Michael</composer>
</composers>
<album> Thriller album</album>
</song>
<song sid = "s2" time = "2:00" year = "1999">
<title> Billy </title>
<artist> Thomas </artist>
<composers>
<composer> Rick </composer>
</composers>
<album> The one </album>
</song>
<song sid = "s3" time = "1:50" year = "2000">
<title> Down </title>
<artist> PJ </artist>
<composers>
<composer>Jerry </composer>
</composers>
<album>Forty </album>
</song>
</songs>
<playlists>
<playlist pid = "p1" creator = "Tom">
<track sid = "s1"/>
</playlist>
</playlists>
</music>
我想要做的是从没有在播放列表中的歌曲让所有SID 所以在这个xml文件,我想有一个查询的回报是sid:s2和s3,因为这两者都不在播放列表中,并且因为s1在播放列表中,所以不应该返回。
我试图用这个查询:
for $x in doc("music.xml")/music/songs/song/@sid
return <sid>{data($x)}</sid>
我是想的,其结果存储在一个变量,所以我以后可以把它比作另一个查询这将穿越的播放列表,但是我在如何将查询结果存储到变量中有点遗憾。任何帮助?谢谢。
这也可以!如果要在变量中捕获该表达式的结果,请在它之前添加'let $ results:=',并在其后面添加'return $ results'(或其他表达式)。 XQuery非常灵活;) – joemfb 2015-03-31 17:02:51
看起来像你的问题得到了切断 – joemfb 2015-03-31 17:04:35
我将如何返回它作为 –
user125535
2015-03-31 17:07:05