XPath EXTENSIBLE PATH LANGUAGE
XPath (Extensible Path Language) XPath (Extensible Path Language) merupakan bahasa yang digunakan untuk mengalamati bagianbagian didalam dokumen XML. XPath bisa digunakan untuk menampilkan data yang diinginkan layaknya query pada mysql atau RDBMS lainnya. Penggunaannya bersamaan dengan XSLT.
XPath (Extensible Path Language) Berbagai macam ekspresi XPath dapat disajikan menggunakan angka, string ataupun boolean. Dengan demikian memungkinkan XSLT stylesheets untuk meletakkan fungsi aritmatik. Dengan manupulasi string pada XPath, XSLT dapat memproses nilai elemen yang ada, misalnya menambahkan atau mengalikan, dsb.
Struktur Dokumen XML Struktur dokumen diilustrasikan mirip dengan struktur penyimpanan data pada hardisk komputer, dimana tag-tag pada dokumen XML tersebut diibaratkan dengan folder dimana masing-masing folder dapat berisi folder lain.
XPath (Extensible Path Language) XPath merupakan bahasa untuk memilih tag-tag tersebut untuk pengarahkan pencarian data pada data yang dituju atau yang diinginkan.
Jenis Node
Dari perspektif XPath, ada tujuh jenis node : The root node Element nodes Text nodes Attribute nodes Comment nodes Processing-instruction nodes Namespace nodes
Location Paths Location path, mengidentifikasi satu set tag / node dalam dokumen, node ini dapat berisi satu node atau lebih mungkin saja kosong. Elemen node ini dapat berisi : node atribut , node nama, node text, node komentar, node instruksi pemrosesan, node root, atau kompbinasinya.
Location Paths Untuk mengarahkan kita kepada elemen root, kita dapat mengaksesnya dengan menggunakan perintah slash ( / ) yang menunjukan posisi absolut.
Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates />
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths Elemen single, akan memilih semua elemen anak dari konteks node denga spesifikasi nama yang sama. Misalnya, pada contoh: jika kita ingin mengunjungi elemen nama agar bisa ditampilkan nama barang, maka kita dapat memanggilnya dengan /penjualan/barang/nama.
Location Paths Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan"> <xsl:value-of select="/penjualan/barang/nama"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths Double slash (//) berfungsi memilih seluruh elemen yang dimaksud tanpa memperhatikan urutan tag / node-nya. Misalnya kita ingin memilih semua elemen / tag / node nama didalam dokumen, maka dapat dituliskan XPath-nya menjadi //nama.
Location Paths Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates select="//nama"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths Karakter bintang ( * ), untuk menuju ke lokasi elemen apapun. Kita juga bisa mengkombinasikan * dengan XPath yang lain. Misalnya dengan menggunakan /*/*/nama. Artinya, kita memilih elemen nama yang berada pada kedalaman 2 tingkatan dari elemen root.
Location Paths Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan"> <xsl:apply-templates select="/*/*/nama"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths Karakter “@”, untuk memilih atribut-atribut yang ada pada sebuah elemen. Misalnya kita ingin memilih semua elemen nama yang memiliki atribut asal, maka penulisannya adalah : //nama[@asal]
Location Paths Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan"> <xsl:apply-templates select="//nama[@asal]"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths Selain itu, kita juga dapat memilih elemen yang yang nilai atributnya tertentu dengan menggunakan //nama[@asal=‘Jakarta'].
Location Paths Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan"> <xsl:apply-templates select="//nama[@asal='Jakarta']"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths Garis vertikal | , untuk memilih lebih dari satu elemen. Misalnya kita ingin memilih elemen /penjualan/barang/nama dan kode dimanapun posisinya.
Location Paths Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan"> <xsl:apply-templates select="/penjualan/barang/nama | //kode"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths comment(), digunakan untuk menempatkan template pada komentar Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="comment()"> Data Penjualan
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Location Paths text() , digunakan memilih teks atau isi dari elemen. Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates select="/penjualan/barang/nama/text()"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Predikat Kita dapat memilih elemen yang sesuai dengan yang kita inginkan dengan menggunakan berbagai macam ekspresi, seperti: <, >, <=, >= dan !=. Misalnya kita ingin memilih elemen barang yang harganya sama dengan 4500.
Predikat Misal:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates select="/penjualan/barang[@harga=4500]"/>
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
General XPath Expression Dengan XPath dapat juga mengembalikan nilai number, boolean, dan string. XPath menyediakan lima operator aritmatika dasar yaitu : • • • • •
+ Addition - Subtraction * Multiplication div Division mod Taking the remainder
General XPath Expression Misalnya menambahkan harga total pada penjualan barang.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan"> <xsl:apply-templates select="barang" /> <xsl:template match="barang"> <xsl:value-of select="@harga * @jumlah" />
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
General XPath Expression kita juga dapat membuat XPath dengan ekpresi boolean <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/penjualan">
JENIS | NAMA BARANG | PEMASOK | HARGA | JUMLAH | TOTAL |
<xsl:apply-templates select="barang"/>
<xsl:template match="barang"> <xsl:if test="@harga>='1500'">
<xsl:value-of select="@jenis"/> | <xsl:value-of select="nama"/> | <xsl:value-of select="pemasok"/> | <xsl:value-of select="@harga"/> | <xsl:value-of select="@jumlah"/> | <xsl:value-of select="@harga * @jumlah"/> |
10111 Indomie Indofood 20111 Coca Cola Coca Cola Company
Referensi http://www.nesc.ac.uk/talks/tox2/xtalk_matt1.pdf http://homepages.inf.ed.ac.uk/wadler/papers/xquer
y-tutorial/xquery-tutorial.pdf dan berbagai sumber lainnya.