0
查詢我有一個簡單的XML文檔在XMLObject組成使用XPath通過命名空間
<abc:MyForm xmlns:abc='http://myform.com'>
<abc:Forms>
<def:Form1 xmlns:def='http://decform.com'>
....
</def:Form1>
<ghi:Form2 xmlns:ghi='http://ghiform.com'>
....
</ghi:Form2>
</abc:Forms>
</abc:MyForm>
我使用XMLObjects Apache的,當我嘗試做以下XPath表達式它完美
object.selectPath("declare namespace abc='http://myform.com'
abc:Form/abc:Forms/*");
這給了我2個表單節點(def和ghi)。不過,我希望能夠通過指定命名空間來查詢,所以我們說我只想要Form2。我已經試過這和它失敗
object.selectPath("declare namespace abc='http://myform.com'
abc:Form/abc:Forms/*
[namespace-uri() = 'http://ghiform.com']");
的selectPath返回0節點。有誰知道發生了什麼事?
更新:
如果我做的2個步驟之後,然後我可以得到我想要的結果。
XmlObject forms = object.selectPath("declare namespace abc='http://myform.com'
abc:Form/abc:Forms")[0];
forms.selectPath("*[namespace-uri() = 'http://ghiform.com']");
這給了我ghi:Form節點就像它應該,我不明白爲什麼它不會作爲單個XPath表達式來做。 感謝
我想你錯過了這個問題的要點。問題是我只想選擇屬於某個命名空間的元素。 – 2011-01-15 00:05:42