0
我有2個XML文件,第一個包含氣象措施,第二個位置的數據:XQuery:爲什麼我的請求在許多XML文件中不起作用?
measures.xml
<measure latitude="45.90298482482" longitude="8.92092094">
...
</measure>
<measure latitude="45.29848284" longitude="8.72474724">
...
</measure>
...
locations.xml
<location latlng="45.9029,8.9209">
<address>8, Denver Road</address>
<place>Goodcity</place>
</location>
<location latlng="45.2984,8.7247">
<address>3, New Avenue</address>
<place>Goodcity</place>
</location>
所以我想如下所示:存儲給定位置的所有位置,然後嘗試使用子字符串獲取與其相對應的度量。這是我的嘗試,但一直返回0:
for $l in //location
where $l/place/string() = 'Goodcity'
return
let $test := $l/@latlng/string()
return
for $m in //measure
where concat(substring($m/@latitude/string(),0,8),',',substring($m/@longitude/string(),0,7)) = $test
return $m
任何想法?
編輯:問題並不來自我使用susbtring(lat,0,8)
和substring(long,0,7)
的事實,我知道我的位置文件,這些將始終返回帶有4位小數的數字。
編輯2:終於它的工作,雖然我的要求很長,你認爲有一種方法可以簡化它嗎?
您需要改善問題的質量:1.兩個「XML文件」都包含非格式良好的XML文檔。 2.你的代碼不縮進,難以閱讀。 3.你在使用'substring()'函數時有明顯的錯誤。 XPath是基於1的,而不是基於0的。你沒有提供確切的想要的結果。請*編輯*問題並改進。 –