XPath - Axes

Vì đường dẫn vị trí xác định vị trí của nút bằng đường dẫn tuyệt đối hoặc tương đối, các trục được sử dụng để xác định các phần tử theo mối quan hệ của chúng như parent, child, sibling, vv Các trục được đặt tên như vậy bởi vì chúng đề cập đến trục mà các phần tử nằm trên đó so với một phần tử.

Sau đây là danh sách các giá trị Axis khác nhau.

Không. Trục & Mô tả
1

ancestor

Đại diện cho tổ tiên của nút hiện tại, bao gồm cha mẹ cho đến nút gốc.

2

ancestor-or-self

Đại diện cho nút hiện tại và tổ tiên của nó.

3

attribute

Đại diện cho các thuộc tính của nút hiện tại.

4

child

Đại diện cho các nút con của nút hiện tại.

5

descendant

Đại diện cho con cháu của nút hiện tại. Con cháu bao gồm con của nút cho đến nút lá (không có con nữa).

6

descendant-or-self

Đại diện cho nút hiện tại và nút con của nó.

7

following

Đại diện cho tất cả các nút đến sau nút hiện tại.

số 8

following-sibling

Đại diện cho các anh chị em sau của nút ngữ cảnh. Anh chị em ở cùng cấp với nút hiện tại và chia sẻ nó là nút cha.

9

namespace

Đại diện cho không gian tên của nút hiện tại.

10

parent

Đại diện cho nút cha của nút hiện tại.

11

preceding

Đại diện cho tất cả các nút đến trước nút hiện tại (tức là trước thẻ mở của nó).

12

self

Đại diện cho nút hiện tại.

Sau đây là một vài ví dụ về việc sử dụng các trục.

firstname - chọn tên liên quan đến các nút sinh viên.

<p><xsl:value-of select = "firstname"/></p>
<xsl:value-of select = "/class/student/preceding-sibling::comment()"/>

Thí dụ

Trong ví dụ này, chúng tôi đã tạo một tài liệu XML mẫu students.xml và tài liệu biểu định kiểu của nó students.xsl sử dụng các biểu thức XPath.

Sau đây là XML mẫu được sử dụng.

sinh viên.xml

<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "students.xsl"?>
<class>
   <!-- Comment: This is a list of student -->
   <student rollno = "393">
      <firstname>Dinkar</firstname>
      <lastname>Kad</lastname>
      <nickname>Dinkar</nickname>
      <marks>85</marks>
   </student>
   <student rollno = "493">
      <firstname>Vaneet</firstname>
      <lastname>Gupta</lastname>
      <nickname>Vinni</nickname>
      <marks>95</marks>
   </student>
   <student rollno = "593">
      <firstname>Jasvir</firstname>
      <lastname>Singh</lastname>
      <nickname>Jazz</nickname>
      <marks>90</marks>
   </student>
</class>

sinh viên.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>First Student: </xsl:text>
            <xsl:value-of select = "/class/student/child::firstname" />    
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

Xác minh đầu ra