我有以下的XPath 1.0查詢:當我想要的節點存在時,爲什麼我的XPath查詢返回默認節點?
/root/Nodes/*[self::CustomNode[not(../DefaultNode)]|self::DefaultNode]/Name
據我瞭解,這將返回/root/Nodes/CustomNode/Name
如果它存在,或者/root/Nodes/DefaultNode/Name
如果它沒有找到。然而,/root/Nodes/DefaultNode/Name
被返回,即使/root/Nodes/CustomNode/Name
存在。任何想法如何解決這個問題?
DefaultNode
節點總是在前進的文檔順序CustomNode
節點。
謝謝
這是一個重複的[我如何返回不同的節點,如果第一個節點沒有在XPath查詢是否存在?(http://stackoverflow.com/questions/5292135/how-do-i-return-一,不同的節點,如果最第一節點 - 犯規 - 存在 - 在-AN-XPath的QUER) – 2011-03-14 17:16:54
你的假設是錯誤的,因爲你已經從我的previus的回答倒的條件。如果你想'CustomNode'或'DefaultNode'時前不存在,你應該使用這個謂詞'[自:: CustomNode |自:: DefaultNode的[不是(../ CustomNode)]]' – 2011-03-14 17:20:16
我明白了。這是問題所在。謝謝。 – Tom 2011-03-14 17:24:16