XPath Eksenleri (Aksler)
- Önceki Sayfa XPath Dilbilgisi
- Sonraki Sayfa XPath Operatörleri
XML Örnek Belgesi
Aşağıdaki örnekte bu XML belgesini kullanacağız:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore><title lang="eng">Harry Potter</title> <price>29.99</price> <price>39.95</price> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book>
</bookstore>
XPath 轴
轴可定义相对于当前节点的节点集。 | 结果 |
---|---|
轴名称 | ancestor |
当前节点的所有先辈(父、祖父等)进行选择。 | ancestor-or-self |
当前节点的所有先辈(父、祖父等)以及当前节点本身进行选择。 | 当前节点的所有属性进行选择。 |
attribute | 当前节点的所有子元素进行选择。 |
child | descendant |
当前节点的所有后代元素(子、孙等)进行选择。 | descendant-or-self |
当前节点的所有后代元素(子、孙等)以及当前节点本身进行选择。 | following |
文档中当前节点的结束标签之后的所有节点进行选择。 | namespace |
当前节点的所有命名空间节点进行选择。 | parent |
当前节点的父节点进行选择。 | preceding |
文档中当前节点的开始标签之前的所有节点进行选择。 | preceding-sibling |
当前节点之前的所有同级节点进行选择。 | self |
当前节点进行选择。
位置路径表达式
位置路径可以是绝对的,也可以是相对的。
绝对位置路径:绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割:
/step/step/...
相对位置路径:
step/step/...
每个步均根据当前节点集之中的节点来进行计算。
步(step)包括:
- 轴(axis)
- 定义所选节点与当前节点之间的树关系
- 节点测试(node-test)
- 某个轴内部的节点进行识别
- 零个或者更多谓语(predicate)
- 所选的节点集进行更深入的提炼
步的语法:
轴名称::节点测试[谓语]
实例
例子 | 结果 |
---|---|
child::book | 属于当前节点的所有子元素的 book 节点进行选择。 |
attribute::lang | 当前节点的 lang 属性进行选择。 |
child::* | 当前节点的所有子元素进行选择。 |
attribute::* | 当前节点的所有属性进行选择。 |
child::text() | 当前节点的所有文本子节点进行选择。 |
child::node() | 当前节点的所有子节点进行选择。 |
descendant::book | Mevcut düğümün tüm book soyutlarını seçin. |
ancestor::book | Mevcut düğümün tüm book atalarını seçin. |
ancestor-or-self::book | Mevcut düğümün tüm book atalarını ve mevcut düğümü (eğer bu düğüm book düğümüyse) seçin. |
child::*/child::price | Mevcut düğümün tüm price alt düğümlerini seçin. |
- Önceki Sayfa XPath Dilbilgisi
- Sonraki Sayfa XPath Operatörleri