2
我試圖選擇包含其屬性中某個給定字符串的節點,但似乎我只能對某個屬性執行此操作。從XML中選擇節點,其中包含某個屬性中的某個字符串
var tempUsers = xmlDocument.selectNodes("//Users/*[contains(@Id,'TEXT')]");
我想,而不是@ID我可以寫些別的東西來檢查節點的所有屬性,而不僅僅是Id。
謝謝。
我試圖選擇包含其屬性中某個給定字符串的節點,但似乎我只能對某個屬性執行此操作。從XML中選擇節點,其中包含某個屬性中的某個字符串
var tempUsers = xmlDocument.selectNodes("//Users/*[contains(@Id,'TEXT')]");
我想,而不是@ID我可以寫些別的東西來檢查節點的所有屬性,而不僅僅是Id。
謝謝。
您可以使用@*
在XPath來選擇所有屬性,但天真的
//Users/*[contains(@*,'TEXT')]
將不做你所期望的。 contains
函數期望它的參數是字符串,所以如果給它一個節點集合,它會首先將節點集合轉換爲一個字符串(通過取集合中第一個節點的字符串值),然後使用該值在函數中。相反,你需要說
//Users/*[@*[contains(.,'TEXT')]]
將找到文檔中的所有元素Users
,然後選擇具有其值包含子TEXT
任何屬性所有的子元素。
非常感謝伊恩!這很好用! :) – yoni
@yoni如果答案適合您,請考慮_accepting_它通過點擊左邊的綠色勾號標記。如果你有接受良好答案的記錄,人們會更願意回答你未來的問題。 –
沒問題@Ian。另一件事,我試圖做一個「不包含」的聲明,但沒有任何成功。你能幫我嗎? xmlDocument.selectNodes( 「//用戶/ * [不[@ * [含有( 'TEXT')]]。]」);這裏有什麼問題? – yoni