XPath Axes (Axes)

XML halimbawa dokumento

Kami ay magiging gamit ng XML dokumento sa mga susunod na halimbawa:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

XPath axis

Ang axis ay maaaring tukuyin ang set ng node na nasa kaugnayan sa kasalukuyang node. Bilang resulta
Pangalan ng axis ancestor
Piliin ang lahat ng magulang (magulang, lolo, atbp.) ng kasalukuyang node. ancestor-or-self
Piliin ang lahat ng magulang (magulang, lolo, atbp.) ng kasalukuyang node at ang kasalukuyang node mismo. Piliin ang lahat ng mga attribute ng kasalukuyang tugma.
attribute Piliin ang lahat ng mga anak na element ng kasalukuyang tugma.
child descendant
Piliin ang lahat ng mga mag-anak na element (anak, apo, atbp.) ng kasalukuyang node. descendant-or-self
Piliin ang lahat ng mga mag-anak na element (anak, apo, atbp.) ng kasalukuyang node at ang kasalukuyang node mismo. following
Piliin ang lahat ng mga node bago ang katapusan ng tag ng kasalukuyang node sa dokumento. namespace
Piliin ang lahat ng mga namespace na node ng kasalukuyang node. parent
Piliin ang magulang na node ng kasalukuyang node. preceding
Piliin ang lahat ng mga node bago ang simula ng tag ng kasalukuyang node sa dokumento. preceding-sibling
Piliin ang lahat ng mga同级 na node bago ang kasalukuyang node. self

Piliin ang kasalukuyang node.

Expression ng path na posisyon

Ang path na posisyon ay maaaring maging absolute o relative.

Ang absolute path ay nagsisimula sa positibong slash (/), habang ang relative path ay hindi ganoon. Sa parehong kaso, ang path na posisyon ay kasama ng isang o higit pang hakbang, na hinahati ng slash:

/step/step/...

Relative position path:

step/step/...

Bawat hakbang ay ibinabatay sa mga node sa kasalukuyang set ng node.

Hakbang (step) kasama ang:

Axis (axis)
Tukuyin ang mga kaugnayang puno ng hiniling na node at kasalukuyang node
Node test (node-test)
Identify ang mga node sa loob ng isang axis
Wala o higit na predicate (predicate)
Higit pang paghahalaga ng hiniling na set ng node

Syntax ng hakbang:

Pangalan ng axis::node test[predicate]

Eksemplo

Halimbawa Bilang resulta
child::book Piliin ang lahat ng mga book na node na nasa loob ng mga anak na element ng kasalukuyang tugma.
attribute::lang Piliin ang attribute ng lang ng kasalukuyang tugma.
child::* Piliin ang lahat ng mga anak na element ng kasalukuyang tugma.
attribute::* Piliin ang lahat ng mga attribute ng kasalukuyang tugma.
child::text() Piliin ang lahat ng mga text na anak na node ng kasalukuyang tugma.
child::node() Piliin ang lahat ng mga anak na node ng kasalukuyang tugma.
descendant::book 选取当前节点的所有 book 后代。
ancestor::book 选择当前节点的所有 book 祖先。
ancestor-or-self::book 选取当前节点的所有 book 祖先以及当前节点(如果此节点是 book 节点)
child::*/child::price 选取当前节点的所有 price 子节点。