鑑於以下xml文件,我需要報告具有少於4個關注者的用戶的uid和關注者的uid。如何計算xml文件中某個特定屬性的出現次數?
<!DOCTYPE users SYSTEM "users.dtd">
<users>
<user uid = "u1" dob = "06/03/94" email = "[email protected]">
<surname> Doe</surname>
<givennames> Jon </givennames>
<follows who = "u1 u2"/>
<playlists>
<playlist pid = "p1" created ="12/03/11" playcount = "5" />
</playlists>
</user>
<user uid = "u2" dob = "06/03/95" email = "[email protected]">
<surname> Dod</surname>
<givennames> Jane </givennames>
<follows who = "u1 u3"/>
<playlists>
<playlist pid = "p2" created ="12/02/10" playcount = "2"/>
</playlists>
</user>
<user uid = "u3" dob = "06/04/95" email = "[email protected]">
<surname> ron</surname>
<givennames> dave </givennames>
<follows who = "u1 u2"/>
<playlists>
<playlist pid = "p3" created ="12/02/09" playcount = "9"/>
</playlists>
</user>
<user uid = "u4" dob = "06/04/99" email = "[email protected]">
<surname> dun</surname>
<givennames> jeff</givennames>
<follows who = "u1 u2 u3"/>
<playlists>
<playlist pid = "p4" created ="12/02/09" playcount = "3"/>
</playlists>
</user>
</users>
我需要一個查詢這給輸出:
<fewfollowers>
<who uid = "u2">
<follower uid = "u1"/>
<follower uid = "u3"/>
<follower uid = "u4"/>
</who>
<who uid = "u3">
<follower uid = "u2"/>
<follower uid = "u4"/>
</who>
<who uid = "u4">
</who>
</fewfollowers>
ATTLIST如下誰IDREFS #IMPLIED
如果報告的用戶不具有任何的追隨者,只是彙報自己的uid
我試過使用count()函數,但我沒有得到任何有用的東西。我嘗試:
for $user in doc("users.xml")/users/user
return count($user/follows/@who = $user")
但這似乎只返回@who的計數爲每個用戶$,而不是特定的元素。此外,我將如何遍歷IDREFS屬性?他們應該由空白區分,但我的計數函數似乎只註冊爲1屬性而不是多個。我曾預計我的函數返回ATLEAST:
1, 2, 2, 3
但它返回:
1,1,1,1
將多個ID填充到屬性中只是一個糟糕的設計。你能改變它嗎? – OldProgrammer 2015-03-31 23:27:43
你在說什麼!ATTLIST跟隨誰IDREFS #implied?如果是這樣,我不能改變這一點。 – user125535 2015-03-31 23:30:32