Tutorial XML

RUMAH XML Pengantar XML XML Cara menggunakan Pohon XML Sintaks XML Elemen XML Atribut XML Ruang Nama XML Tampilan XML XML HttpRequest Pengurai XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validator XML XML DTD Skema XML Server XML Contoh XML Kuis XML Sertifikat XML

XML AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

XML DOM

Pengenalan DOM Node DOM Mengakses DOM Info Simpul DOM Daftar Simpul DOM Melintasi DOM Navigasi DOM DOM Dapatkan Nilai DOM Ubah Node DOM Hapus Node DOM Ganti Node DOM Buat Node DOM Tambahkan Node Node Klon DOM Contoh DOM

Tutorial XPath

Pengenalan XPath Node XPath Sintaks XPath Sumbu XPath Operator XPath Contoh XPath

Tutorial XSLT

Pengenalan XSLT Bahasa XSL Transformasi XSLT XSLT <templat> XSLT <nilai-dari> XSLT <untuk-setiap> XSLT <sort> XSLT <jika> XSLT <pilih> Terapkan XSLT XSLT di Klien XSLT di Server XSLT Sunting XML Contoh XSLT

Tutorial XQuery

Pengenalan XQuery Contoh XQuery XQuery FLWOR HTML XQuery Persyaratan XQuery Sintaks XQuery Tambahkan XQuery XQuery Pilih Fungsi XQuery

XML DTD

Pengenalan DTD Blok Bangunan DTD Elemen DTD Atribut DTD Elemen DTD vs Attr Entitas DTD Contoh DTD

Skema XSD

Pengenalan XSD XSD Bagaimana caranya? XSD <skema> Elemen XSD Atribut XSD Pembatasan XSD

Kompleks XSD

Elemen XSD XSD Kosong Elemen XSD Saja Hanya Teks XSD Campuran XSD Indikator XSD XSD <apa saja> XSD <anyAttribute> Pergantian XSD Contoh XSD

Data XSD

String XSD Tanggal XSD XSD Numerik XSD Lain-lain Referensi XSD

Layanan Web

Layanan XML XML WSDL XML SOAP XML RDF XML RSS

Referensi

Jenis Node DOM Simpul DOM Daftar Simpul DOM DOM BernamaNodeMap Dokumen DOM Elemen DOM Atribut DOM Teks DOM DOM CDATA Komentar DOM DOM XMLHttpRequest Pengurai DOM Elemen XSLT Fungsi XSLT/XPath

Pohon Node Lintasan XML DOM


Traversing berarti perulangan melalui atau perjalanan melintasi pohon simpul.


Melintasi Pohon Node

Seringkali Anda ingin mengulang dokumen XML, misalnya: ketika Anda ingin mengekstrak nilai setiap elemen.

Ini disebut "Melintasi pohon simpul"

Contoh di bawah ini mengulang semua node anak <book>, dan menampilkan nama dan nilainya:

Contoh

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var x, i ,xmlDoc;
var txt = "";
var text = "<book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

// documentElement always represents the root node
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length ;i++) {
    txt += x[i].nodeName + ": " + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>

</body>
</html>

Keluaran:

title: Everyday Italian
author: Giada De Laurentiis
year: 2005

Contoh menjelaskan:

  1. Muat string XML ke xmlDoc
  2. Dapatkan simpul anak dari elemen root
  3. Untuk setiap simpul anak, keluarkan nama simpul dan nilai simpul dari simpul teks


Perbedaan Browser dalam Parsing DOM

Semua browser modern mendukung spesifikasi DOM W3C.

Namun, ada beberapa perbedaan antara browser. Satu perbedaan penting adalah:

  • Cara mereka menangani spasi putih dan baris baru

DOM - Spasi Putih dan Baris Baru

XML sering berisi baris baru, atau karakter spasi putih, di antara node. Ini sering terjadi ketika dokumen diedit oleh editor sederhana seperti Notepad.

Contoh berikut (diedit oleh Notepad) berisi CR/LF (baris baru) antara setiap baris dan dua spasi di depan setiap simpul anak:

<book>
  <title>Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

Internet Explorer 9 dan sebelumnya TIDAK memperlakukan spasi kosong, atau baris baru sebagai node teks, sementara browser lain melakukannya.

Contoh berikut akan menampilkan jumlah node anak yang dimiliki elemen root (dari books.xml ). IE9 dan sebelumnya akan menampilkan 4 node anak, sedangkan IE10 dan versi yang lebih baru, dan browser lain akan menampilkan 9 node anak:

Contoh

function myFunction(xml) {
var xmlDoc = xml.responseXML;
    x = xmlDoc.documentElement.childNodes;
    document.getElementById("demo").innerHTML =
    "Number of child nodes: " + x.length;
}

PCDATA - Data Karakter yang Diurai

Parser XML biasanya mengurai semua teks dalam dokumen XML.

Saat elemen XML diuraikan, teks di antara tag XML juga diuraikan:

<message>This text is also parsed</message>

Parser melakukan ini karena elemen XML dapat berisi elemen lain, seperti dalam contoh ini, di mana elemen <name> berisi dua elemen lain (pertama dan terakhir):

<name><first>Bill</first><last>Gates</last></name>

dan parser akan memecahnya menjadi sub-elemen seperti ini:

<name>
  <first>Bill</first>
  <last>Gates</last>
</name>

Data Karakter Parsing (PCDATA) adalah istilah yang digunakan tentang data teks yang akan diurai oleh parser XML.


CDATA - Data Karakter (Belum Diurai)

Istilah CDATA digunakan tentang data teks yang tidak boleh diuraikan oleh parser XML.

Karakter seperti "<" dan "&" ilegal dalam elemen XML.

"<" akan menghasilkan kesalahan karena parser menafsirkannya sebagai awal dari elemen baru.

"&" akan menghasilkan kesalahan karena parser menafsirkannya sebagai awal entitas karakter.

Beberapa teks, seperti kode JavaScript, berisi banyak karakter "<" atau "&". Untuk menghindari kesalahan kode script dapat didefinisikan sebagai CDATA.

Segala sesuatu di dalam bagian CDATA diabaikan oleh parser.

Bagian CDATA dimulai dengan " <![CDATA[ " dan diakhiri dengan " ]]> ":

<script>
<![CDATA[
function matchwo(a,b) {
    if (a < b && a < 0) {
        return 1;
    } else {
        return 0;
    }
}
]]>
</script>

Pada contoh di atas, semua yang ada di dalam bagian CDATA diabaikan oleh parser.

Catatan tentang bagian CDATA:

Bagian CDATA tidak boleh berisi string "]]>". Bagian CDATA bertingkat tidak diperbolehkan.

"]]>" yang menandai akhir bagian CDATA tidak boleh berisi spasi atau jeda baris.