XPath定义模式或路径表达式以选择XML文档中的节点或节点集。 XSLT使用这些模式来执行转换。路径表达式看起来与我们在传统文件系统中使用的通用表达式非常相似。
XPath指定可以执行XPath表达式的输出的七种类型的节点。
- 根
- 元件
- 文本
- 属性
- 评论
- 加工说明
- 命名空间
我们知道XPath使用路径表达式从XML文档中选择节点或节点列表。
有用的路径和表达式列表, 用于从XML文档中选择任何节点/节点列表:
Index | Expression | Description |
---|---|---|
1) | node-name | 它用于选择具有给定名称” nodename”的所有节点 |
2) | / | 它指定选择从根节点开始。 |
3) | // | 它指定选择从与选择匹配的当前节点开始。 |
4) | . | 选择当前节点。 |
5) | .. | 选择当前节点的父节点。 |
6) | @ | Selects attributes. |
7) | student | 示例-选择名称为” student”的所有节点。 |
8) | class/student | 示例-选择属于班级子级的所有学生元素 |
9) | //student | 选择所有学生元素, 无论它们在文档中的何处 |
XPath表达式示例
让我们来看一个示例, 了解XPath表达式的用法。在这里, 我们使用xml文件” employee.xml”和该XML文件的样式表” employee.xsl”。 XSL文件使用各种XSL标记的select属性下的XPath表达式来获取每个员工节点的id, 名字, 姓氏, 昵称和工资的值。
employee.xml
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?>
<class>
<employee id = "001">
<firstname>Aryan</firstname>
<lastname>Gupta</lastname>
<nickname>Raju</nickname>
<salary>30000</salary>
</employee>
<employee id = "024">
<firstname>Sara</firstname>
<lastname>Khan</lastname>
<nickname>Zoya</nickname>
<salary>25000</salary>
</employee>
<employee id = "056">
<firstname>Peter</firstname>
<lastname>Symon</lastname>
<nickname>John</nickname>
<salary>10000</salary>
</employee>
</class>
员工.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> Employees</h2>
<table border = "1>
<tr bgcolor = "pink">
<th> ID</th>
<th> First Name</th>
<th> Last Name</th>
<th> Nick Name</th>
<th> Salary</th>
</tr>
<xsl:for-each select = "class/employee">
<tr>
<td> <xsl:value-of select = "@id"/> </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 = "salary"/> </td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
输出
评论前必须登录!
注册