xpath-总结
?
XPath?
? ? ? ? 读取XML的语言。XQuery 和 XPointer 同时被构建于 XPath 表达之上。
? ? ? ? nodename 选取此节点的所有子节点?
?
XPath通过路径选择节点,常用路径如下:
? ? ? ? / 从根节点选取?
? ? ? ? // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置?
? ? ? ? . 选取当前节点?
? ? ? ? .. 选取当前节点的父节点?
? ? ? ? @ 选取属性?
?
谓词: ? ? ? ?谓语被嵌在方括号中。
? ? ? ? /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。?
? ? ? ? /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。?
? ? ? ? /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。?
? ? ? ? /bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。?
? ? ? ? //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。?
? ? ? ? //title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。?
? ? ? ? /bookstore/book[price>35.00] 选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。?
? ? ? ? /bookstore/book[price>35.00]/title 选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00。?
?
XPath 轴
? ? ? ? 轴可定义某个相对于当前节点的节点集。
? ? ? ? ancestor 选取当前节点的所有先辈(父、祖父等)?
? ? ? ? ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身?
? ? ? ? attribute 选取当前节点的所有属性?
? ? ? ? child 选取当前节点的所有子元素。?
? ? ? ? descendant 选取当前节点的所有后代元素(子、孙等)。?
? ? ? ? descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。?
? ? ? ? following 选取文档中当前节点的结束标签之后的所有节点。?
? ? ? ? namespace 选取当前节点的所有命名空间节点?
? ? ? ? parent 选取当前节点的父节点。?
? ? ? ? preceding 选取文档中当前节点的开始标签之前的所有节点。?
? ? ? ? preceding-sibling 选取当前节点之前的所有同级节点。?
? ? ? ? self 选取当前节点。?
? ? ? ? 例子:
? ? ? ? ? ? ? ? child::*/child::price 选取当前节点的所有 price 孙。?