XPath軸線
由於位置路徑使用絕對路徑或相對路徑定義節點的位置,因此軸用於通過它們的關係來識別元素,如父,子,兄弟節點等。軸的命名是因爲它們指的是元素相對於元素所在的軸。
以下是各種Axis
值的列表。
序號
軸
描述
1
ancestor
表示當前節點的祖先,其中包括直到根節點的父節點。
2
ancestor-or-self
表示當前節點及其祖先。
3
attribute
表示當前節點的屬性。
4
child
表示當前節點的子節點。
5
descendant
表示當前節點的後代,後代包括節點的子節點到葉節點(不再有子節點)。
6
descendant-or-self
表示當前節點及其後代。
7
following
表示當前節點之後的所有節點。
8
following-sibling
表示上下文節點的以下兄弟節點,兄弟姐妹與當前節點處於同一級別並共享其父級。
9
namespace
表示當前節點的命名空間。
10
parent
表示當前節點的父節點。
11
preceding
表示在當前節點之前(即在它打開標記之前)的所有節點。
12
self
表示當前節點。
以下是關於軸的使用的幾個例子。firstname
- 選擇與<student>
節點相關的名字。
<p><xsl:value-of select = "firstname"/></p>
<xsl:value-of select = "/class/student/preceding-sibling::comment()"/>
示例
在這個例子中,我們創建了一個示例XML文檔students.xml,及其樣式表文檔students.xsl,它使用了XPath表達式。
以下是使用的示例XML。文件:students.xml -
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "students.xsl"?>
<class>
<student rollno = "393">
<firstname>Dinkar</firstname>
<lastname>Su</lastname>
<nickname>MaXX</nickname>
<marks>88</marks>
</student>
<student rollno = "493">
<firstname>Vaneet</firstname>
<lastname>Lee</lastname>
<nickname>Vicky</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>Jasvir</firstname>
<lastname>Wong</lastname>
<nickname>Jazz</nickname>
<marks>90</marks>
</student>
</class>
文件:students.xsl -
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:template match = "/" >
<html>
<body>
<xsl:value-of select = "/class/student/preceding-sibling::comment()"/>
<br/>
<xsl:text>第一個學生: </xsl:text>
<xsl:value-of select = "/class/student/child::firstname" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在瀏覽器中打開上面文件:student.xml ,驗證顯示效果如下 -