XPath - Sumbu

Karena jalur lokasi menentukan lokasi node menggunakan jalur absolut atau relatif, sumbu digunakan untuk mengidentifikasi elemen dengan hubungannya seperti parent, child, sibling, dll. Sumbu dinamai demikian karena mengacu pada sumbu di mana elemen terletak relatif terhadap suatu elemen.

Berikut ini adalah daftar berbagai nilai sumbu.

S.No. Sumbu & Deskripsi
1

ancestor

Merupakan leluhur dari simpul saat ini yang mencakup orang tua hingga simpul akar.

2

ancestor-or-self

Mewakili node saat ini dan leluhurnya.

3

attribute

Merupakan atribut dari node saat ini.

4

child

Mewakili anak-anak dari node saat ini.

5

descendant

Merupakan turunan dari node saat ini. Keturunan termasuk anak node sampai node daun (tidak ada anak lagi).

6

descendant-or-self

Mewakili node saat ini dan turunannya.

7

following

Merepresentasikan semua node yang muncul setelah node saat ini.

8

following-sibling

Mewakili saudara berikut dari node konteks. Saudara kandung berada pada level yang sama dengan node saat ini dan berbagi induknya.

9

namespace

Merupakan namespace dari node saat ini.

10

parent

Merupakan induk dari node saat ini.

11

preceding

Mewakili semua node yang datang sebelum node saat ini (yaitu sebelum tag pembuka).

12

self

Merupakan node saat ini.

Berikut adalah beberapa contoh penggunaan sumbu.

firstname - pilih nama depan yang terkait dengan simpul siswa.

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

Contoh

Dalam contoh ini, kami telah membuat contoh dokumen XML students.xml dan dokumen stylesheetnya students.xsl yang menggunakan ekspresi XPath.

Berikut contoh XML yang digunakan.

students.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>

siswa.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>

Verifikasi hasilnya