PHP XML DOM Ayrıştırıcı
Yerleşik DOM ayrıştırıcı, XML belgelerini PHP'de işlemeyi mümkün kılar.
XML DOM Ayrıştırıcı
DOM ayrıştırıcısı, ağaç tabanlı bir ayrıştırıcıdır.
Aşağıdaki XML belge kısmına bakın:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOM, yukarıdaki XML'i bir ağaç yapısı olarak görür:
- Seviye 1: XML Belgesi
- 2. Düzey: Kök öğe: <from>
- Seviye 3: Metin öğesi: "Jani"
Kurulum
DOM ayrıştırıcı işlevleri, PHP çekirdeğinin bir parçasıdır. Bu işlevleri kullanmak için herhangi bir kurulum gerekmez.
XML Dosyası
Aşağıdaki XML dosyası ("note.xml") örneğimizde kullanılacaktır:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Yükleme ve Çıkış XML'i
XML ayrıştırıcısını başlatmak, xml'yi yüklemek ve çıktısını almak istiyoruz:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Yukarıdaki kodun çıktısı şöyle olacaktır:
Tove Jani Reminder Don't forget me this weekend!
Tarayıcı penceresinde "Kaynağı görüntüle"yi seçerseniz, aşağıdaki HTML'yi göreceksiniz:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Yukarıdaki örnek bir DOMDocument-Object oluşturur ve XML'i "note.xml"den ona yükler.
Daha sonra saveXML() işlevi, dahili XML belgesini bir dizgeye koyar, böylece onu çıktı alabiliriz.
XML üzerinden döngü
XML ayrıştırıcısını başlatmak, XML'i yüklemek ve <note> öğesinin tüm öğeleri arasında döngü oluşturmak istiyoruz:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
Yukarıdaki kodun çıktısı şöyle olacaktır:
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
Yukarıdaki örnekte, her öğe arasında boş metin düğümleri olduğunu görüyorsunuz.
XML oluşturduğunda, genellikle düğümler arasında beyaz boşluklar içerir. XML DOM ayrıştırıcısı bunları sıradan öğeler olarak ele alır ve bunların farkında değilseniz bazen sorunlara neden olurlar.
XML DOM hakkında daha fazla bilgi edinmek istiyorsanız, lütfen XML eğitimimizi ziyaret edin .