XPath 轴
XPath轴
我们知道,路径使用绝对路径或相对路径定义节点的位置。以相同的方式,XPath轴用于通过元素之间的关系来标识元素,例如父,子,同级等。轴是指元素相对于元素所在的轴。
各种Axis值的列表:
轴 |
说明 |
祖先 |
它指定当前节点的祖先,包括父节点直到根节点。 |
祖先或自我 |
它指定当前节点及其祖先。 |
属性 |
它指定当前节点的属性。 |
子节点 |
它指定当前节点的子代。 |
后代 |
它指定当前节点的后代,即节点的子节点直到叶节点(没有更多的子节点)。 |
后代或自我 |
它指定当前节点及其后代。 |
紧邻节点 |
它指定当前节点之后的所有节点。 |
紧邻同节点 |
它指定上下文节点的以下同级。兄弟姐妹与当前节点处于同一级别,并共享其父节点。 |
命名空间 |
它指定当前节点的名称空间。 |
父节点 |
它指定当前节点的父级。 |
之前节点 |
它指定了当前节点之前(即开始标记之前)的所有节点。 |
当前节点 |
它指定当前节点。 |
XPath轴示例
<p><xsl:value-of select = "firstname"/></p>
<xsl:value-of select = "/class/student/preceding-sibling::comment()"/>
这里的名字与名为employee.xml的XML文档的员工节点相关
让我们创建一个名为" employee.xml"的XML文档及其名为" employee.xsl"的样式表文档XPath表达式。
Employee.xml
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?>
<class>
<employee id = "001">
<firstname>Abhiram</firstname>
<lastname>Kushwaha</lastname>
<nickname>Manoj</nickname>
<salary>15000</salary>
</employee>
<employee id = "002">
<firstname>Akash</firstname>
<lastname>Singh</lastname>
<nickname>Bunty</nickname>
<salary>25000</salary>
</employee>
<employee id = "003">
<firstname>Brijesh</firstname>
<lastname>Kaushik</lastname>
<nickname>Ballu</nickname>
<salary>20000</salary>
</employee>
<employee id = "004">
<firstname>Zoya</firstname>
<lastname>Mansoori</lastname>
<nickname>Sonam</nickname>
<salary>30000</salary>
</employee>
</class>
Employee.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/employee/preceding-sibling::comment()"/>
<br/>
<xsl:text>First Employee: </xsl:text>
<xsl:value-of select = "/class/employee/child::firstname" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
输出: