XPath表示式通常定義模式以便選擇一組節點。 這些模式由XSLT用於執行轉換,或者由XPointer
用於定址。
XPath規範指定了七種型別的節點,這些節點可以是XPath表示式的執行輸出。
XPath使用路徑表示式從XML文件中選擇節點或節點列表。
以下是從XML文件中選擇節點/節點列表的路徑和表示式列表。
序號 | 表示式 | 描述 |
---|---|---|
1 | node-name |
選擇具有給定名稱nodename 的所有節點。 |
2 | / |
選擇從根節點開始。 |
3 | // |
選擇從與選擇匹配的當前節點開始。 |
4 | . |
選擇當前節點 |
5 | .. |
選擇當前節點的父節點 |
6 | @ |
選擇屬性 |
7 | student |
範例 - 選擇名為student 的所有節點 |
8 | class/student |
範例 - 選擇作為類的子項的所有student 元素 |
9 | //student |
選擇所有student 元素,無論它們在文件中的什麼位置 |
在這個例子中,建立了一個範例XML文件students.xml及其樣式表文件students.xsl,它使用各種XSL標記的select
屬性下的XPath表示式來獲取每個學生節點:rollno
,firstname
,lastname
,nickname
和marks
的值。
檔案: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>
<h2>Students</h2>
<table border = "1">
<tr bgcolor = "#9acd32">
<th>Roll No</th>
<th>First Name</th>
<th>Last Name</th>
<th>Nick Name</th>
<th>Marks</th>
</tr>
<xsl:for-each select = "class/student">
<tr>
<td> <xsl:value-of select = "@rollno"/></td>
<td><xsl:value-of select = "firstname"/></td>
<td><xsl:value-of select = "lastname"/></td>
<td><xsl:value-of select = "nickname"/></td>
<td><xsl:value-of select = "marks"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在瀏覽器中開啟,驗證輸出結果 -