我有一個xml文件。
<?xml version = "1.0" encoding = "UTF -8"?>
<library>
<books>
<book>
<title>The story of My Life</title>
<accessionNumber val = "1"/>
</book>
<book>
<title>The Parody</title>
<accessionNumber val = "2"/>
</book>
<book>
<title>The Automata Theory</title>
<accessionNumber val = "3"/>
</book>
</books>
<loans>
<loan book="1" user="35" dueDate="2006-April-10-05:00"/>
<loan book="2" user="36" dueDate="2015-May-10-05:00"/>
<loan book="3" user="36" dueDate="2014-November-10-05:00"/>
</loans>
<users>
<user> <name> Fred Jones</name> <id val = "35"/> </user>
<user> <name> Aadeem Nus</name> <id val = "36"/> </user>
</users>
我必須要找到(a)所有的貸款,按用戶名
(二)用戶借了一本書
我對溶液(排序列表)我解決了。解決XQuery是:
for $u in doc("lib.xml")//user
for $l in doc("lib.xml")//loan
where $l/@user = $u/id/@val
order by $u/name
return $u/name
但它花了很長時間,因爲我與
for $u in doc("lib.xml")//users
for $l in doc("lib.xml")//loans
where $l/loan/@user = $u/user/id/@val
order by $u/user/name
return $u/user/name
想我看到他們之間沒有什麼區別。有什麼不同? (b)與(a)相同的問題。我解決了很長時間。解決一個:
for $u_n in doc("lib.xml")//user
for $x at $xPos in doc("lib.xml")//loan
for $y at $yPos in doc("lib.xml")//loan
where $x/@user = $y/@user
and $xPos < $yPos
and $u_n/id/@val = $x/@user
return data($u_n/name)
而尚未解決的一個(爲解決一個根據我這是相同的):
for $u_n in doc("lib.xml")//user
for $x at $xPos in doc("lib.xml")//loans
for $y at $yPos in doc("lib.xml")//loans
where $x/loan/@user = $y/loan/@user
and $xPos < $yPos
and $u_n/id/@val = $x/loan/@user
return data($u_n/name)
任何人都可以請您給解釋?
謝謝。
關鍵的一點是,對於' $ y in // loans'將在循環的每一步都指定一個''元素,並試圖解決貸款/貸款顯然是失敗的。所有其他迭代都是一樣的。 –
raina77ow
這看起來更像是一串長長的家庭作業問題,而不是一個特定的技術問題。 SO是後者更好的論壇。 –
它已經解決了。我的問題是有什麼區別,爲什麼它不起作用? – Nusrat