軸
位置路徑使用座標軸來指定位置步驟選取之節點與內容節點之間的關聯性。
軸 |
描述 |
---|---|
ancestor:: |
內容節點的上階。 內容節點的祖系包含內容節點的父代以及父代的父代,依此類推;因此 ancestor:: 座標軸始終會包含根節點 (除非內容節點即為根節點)。 |
ancestor-or-self:: |
內容節點及其上階。 ancestor-or-self:: 座標軸始終包含根節點。 |
attribute:: |
內容節點的屬性。 此座標軸將為空白,除非內容節點是一個項目。 |
child:: |
內容節點的子系。 子系是指樹狀結構中任何緊接在內容節點之下的節點。 但屬性和命名空間都不被視為內容節點的子系。 |
descendant:: |
內容節點的子代。 子代是指子系或子系的子系,依此類推;因此,descendant:: 座標軸絕不會包含屬性或命名空間節點。 |
descendant-or-self:: |
內容節點及其子代。 |
following:: |
樹狀結構中所有位於內容節點之後的節點,除了任何子代、屬性節點與命名空間節點以外。 |
following-sibling:: |
內容節點所有的之後同層級。 following-sibling:: 座標軸只會識別樹狀結構中出現在內容節點之後的父節點子系。 這個座標軸會排除所有出現在內容節點之前的其他子系。 若內容節點為屬性節點或命名空間節點,則 following-sibling:: 座標軸是空的。 |
namespace:: |
內容節點的命名空間節點。 每個位於內容節點範圍內的命名空間都會有一個命名空間節點。 此座標軸將為空白,除非內容節點是一個項目。 |
parent:: |
內容節點的父代 (若有的話)。 父代是指樹狀結構中緊臨在內容節點之上的節點。 |
preceding:: |
樹狀結構中所有位於內容節點之前的節點,除了任何上階、屬性節點與命名空間節點以外。 您可以將先行座標軸認定為所有內容都產生在內容節點開頭之前的節點集。 |
preceding-sibling:: |
內容節點所有的之前同層級。 preceding-sibling:: 座標軸只會識別樹狀結構中出現在內容節點之前的父節點子系。 這個座標軸會排除所有出現在內容節點之後的其他子系。 若內容節點為屬性節點或命名空間節點,則 preceding-sibling:: 座標軸是空的。 |
self:: |
只有內容節點本身。 |
備註
namespace
每個項目都有一組相關聯的命名空間節點,一個用於每個位於此項目範圍內的個別命名空間前置詞 (包括 xml 前置詞,由 XML 命名空間建議事項隱含宣告),一個用於預設命名空間 (若命名空間節點位於此項目的範圍內)。 此項目為上述每個命名空間節點的父代;但命名空間節點並非其父項目的子系。 元素絕不會共用命名空間節點:若某個元素節點與另一個元素節點並非相同的節點,則這兩個元素節點所各自擁有的命名空間節點,絕不會是相同的節點。 這表示項目所擁有的命名空間節點,乃是針對:項目上每個以 xmlns: 做為名稱開頭的屬性。
祖系項目上每個以 xmlns: 做為名稱開頭的屬性 (除非項目本身或最接近的祖系重新宣告前置詞)。
xmlns 屬性 (若項目或某些祖系具有 xmlns 屬性,且其中最接近之項目的 xmlns 屬性值並非空白)。
下列執行個體中的 <sample> 項目:
<A xmlns="urn:A">
<B xmlns:test="sample">
<sample xmlns:sampletest="sampletest"/>
</B>
</A>
包含下列命名空間節點:
xmlns="urn:A"
xmlns:test="sample"
xmlns:sampletest="sampletest"
下列執行個體中的 <sample> 項目:
<A xmlns="urn:A">
<B xmlns:test="sample">
<sample xmlns:sampletest="sampletest" xmlns:bar="test"/>
</B>
</A>
包含下列命名空間節點:
xmlns:sampletest="sampletest"
xmlns:test="test"
![]() |
---|
屬性 會取消宣告預設命名空間。 |
命名空間節點具有展開名稱:本體部分為命名空間前置詞 (若命名空間節點是用於預設命名空間,則為空白);命名空間的統一資源識別元 (URI) 一律為 Null。
命名空間節點的字串值,即為繫結至命名空間前置詞的命名空間 URI;若其為相對值,則必須像展開名稱中的命名空間 URI 一般進行解析。
範例
following::
following:: 座標軸的範例會參考下列執行個體文件:
<A>
<B>
<C>sample</C>
<C>sample2</C>
</B>
<B>
<C>sample</C>
<C>sample2</C>
<D>sample3</D>
</B>
</A>
Query |
傳回的節點 |
---|---|
A/B[1]/following::* |
|
A/B[1]/following::node() |
preceding::
preceding:: 座標軸的範例會參考下列執行個體文件:
<A>
<B>
<C test="sampletest">sample</C>
<C>sample2</C>
</B>
<B>
<C>sample</C>
<C>sample2</C>
<D>sample3</D>
</B>
</A>
Query |
傳回的節點 |
---|---|
A/B[2]/preceding::* |
following-sibling::
following-sibling:: 座標軸的範例會參考下列執行個體文件:
<A>
<B>
<C test="sampletest">sample</C>
<C>sample2</C>
</B>
<B>
<C>sample</C>
<C>sample2</C>
<D>sample3</D>
</B>
</A>
Query |
傳回的節點 |
---|---|
A/B[1]/following-sibling::* |
preceding-sibling::
preceding-sibling:: 座標軸的範例會參考下列執行個體文件:
<A>
<B>
<C test="sampletest">sample</C>
<C>sample2</C>
</B>
<B>
<C>sample</C>
<C>sample2</C>
<D>sample3</D>
</B>
</A>
Query |
傳回的節點 |
---|---|
A/B[2]/preceding-sibling::* |