由於位置路徑使用絕對路徑或相對路徑定義節點的位置,因此軸用於通過它們的關係來識別元素,如父,子,兄弟節點等。軸的命名是因為它們指的是元素相對於元素所在的軸。
以下是各種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 ,驗證顯示效果如下 -