XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍歷。
???? XPath 是 W3C XSLT 標準的主要元素,并且 XQuery 和 XPointer 同時被構建于 XPath 表達之上。
???? 推薦一個挺不錯的網站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html? 里面有很不錯的例子,下面的例子中紅色字體表示使用對應語法獲取的元素(或屬性)。
???? XPath軸(XPath Axes)可定義某個相對于當前節點的節點集:
???? 1、child? 選取當前節點的所有子元素
???? 2、parent? 選取當前節點的父節點
???? 3、descendant 選取當前節點的所有后代元素(子、孫等)
???? 4、ancestor? 選取當前節點的所有先輩(父、祖父等)
???? 5、descendant-or-self? 選取當前節點的所有后代元素(子、孫等)以及當前節點本身
???? 6、ancestor-or-self? 選取當前節點的所有先輩(父、祖父等)以及當前節點本身
???? 7、preceding-sibling 選取當前節點之前的所有同級節點
???? 8、following-sibling 選取當前節點之后的所有同級節點
???? 9、preceding?? 選取文檔中當前節點的開始標簽之前的所有節點
???? 10、following?? 選取文檔中當前節點的結束標簽之后的所有節點
???? 11、self? 選取當前節點
???? 12、attribute? 選取當前節點的所有屬性
???? 13、namespace 選取當前節點的所有命名空間節點
?
???? descendant-or-self跟descendant類似,多了節點本身。
???? /AAA/BBB/descendant-or-self::*??? 選擇/AAA/BBB本身及所有后代元素
?? <AAA>?
???? <BBB>?
????????? <DDD>?
?????????????? <CCC>?
??????????????????? <DDD/>?
??????????????????? <EEE/>?
?????????????? </CCC>?
????????? </DDD>?
???? </BBB>?
???? <CCC>?
????????? <DDD>?
?????????????? <EEE>?
??????????????????? <DDD>?
???????????????????????? <FFF/>?
??????????????????? </DDD>?
?????????????? </EEE>?
????????? </DDD>?
???? </CCC>
????? //CCC/descendant-or-self::*??? 選擇CCC的所有后代元素及本身
?? <AAA>????? <BBB>?
????????? <DDD>?
?????????????? <CCC>?
??????????????????? <DDD/>?
??????????????????? <EEE/>?
?????????????? </CCC>?
????????? </DDD>?
???? </BBB>?
???? <CCC>?
????????? <DDD>?
?????????????? <EEE>?
??????????????????? <DDD>?
???????????????????????? <FFF/>?
??????????????????? </DDD>?
?????????????? </EEE>?
????????? </DDD>?
???? </CCC>?
? </AAA>