所以我有以下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