PHP XML DOM

Dahili DOM解析cis, PHP'te XML belgeleriyle işlemeyi mümkün kılar.

DOM nedir?

W3C DOM, HTML ve XML belgeleri için standart nesneler kümesini ve bu belgelere erişmek ve bunları işlemek için standart arayüzleri sağlar.

W3C DOM, farklı kısımlara (Core, XML ve HTML) ve farklı seviyelere (DOM Level 1/2/3) ayrılır:

  • Core DOM - Her türlü yapılandırılmış belge için standart nesneler kümesini tanımlar
  • XML DOM - XML belgeleri için standart nesneler kümesini tanımlar
  • HTML DOM - HTML belgeleri için standart nesneler kümesini tanımlar

XML DOM hakkında daha fazla bilgi öğrenmek istiyorsanız, sitemizi ziyaret edin XML DOM Eğitimi

XML解析

Bir XML belgesini okumak ve güncellemek - bir XML belgesi oluşturmak ve işlemek için XML解析cisine ihtiyacınız vardır.

Temel iki XML解析cis türü vardır:

  • Ağaç tabanlı解析cis:Bu tür解析cisleri XML belgesini bir ağaç yapısına dönüştürür. Tüm belgeyi analiz eder ve belgedeki elementlere erişmek için API sağlar, örneğin belge nesnesi modeli (DOM).
  • Olay tabanlı解析cis:XML belgesini bir dizi olay olarak görür. Bir olay gerçekleştiğinde,解析cis fonksiyonları çağırır.

DOM解析cisleri ağaç tabanlıdır.

Aşağıdaki XML belgesi parçasını görün:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>John</from>

XML DOM, XML'yi bir ağaç yapısı olarak görür:

  • 1. Seviye: XML belgesi
  • 2. Seviye: Kök elementi: <from>
  • 3. Seviye: Metin elementi: "John"

Yükleme

DOM XML解析cisleri PHP'nin çekirdek bileşenlerinden biridir. Bu fonksiyonları kullanmak için yükleme gerekmez.

XML dosyası

Örnekimizde aşağıdaki XML dosyasını kullanacağız:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Hatırlatma</heading>
<body>Unutmayın toplantıyı!</body>
</note>

XML yükleme ve çıktı

XML解析cisini başlatmamız, XML'yi yüklememiz ve onu çıktıya vermemiz gerekiyor:

Örnek

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

Yukarıdaki kodun çıktısı:

George John Hatırlatma Unutmayın toplantıyı!

Tarayıcı pencerenizde kaynak kodunu görüyorsanız, aşağıdaki HTML'yi göreceksiniz:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Hatırlatma</heading>
<body>Unutmayın toplantıyı!</body>
</note>

Yukarıdaki örnekte, bir DOMDocument-Object oluşturuldu ve "note.xml" içindeki XML, bu doküman nesnesine yüklenmiştir.

saveXML() fonksiyonu, içsel XML dokümanını bir dizeye koyar, böylece onu çıktıya verebiliriz.

XML Döngüle

XML解析cisini başlatmalı, XML'yi yüklemeli ve <note> elementlerinin tüm elementlerini döngülemeliyiz:

Örnek

<?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ı:

#text = 
to = George
#text = 
from = John
#text = 
heading = Hatırlatma
#text = 
body = Toplantıyı unutmayın!
#text =

Yukarıdaki örnekte, her element arasında boş metin node'ları gördünüz.

XML oluşturulduğunda, genellikle node'lar arasında boşluk içerir. XML DOM解析örleri bunları sıradan elementler olarak alır ve dikkat etmezseniz, bazen sorunlara neden olabilir.

XML DOM hakkında daha fazla bilgi öğrenmek istiyorsanız, sitemizi ziyaret edin XML DOM Eğitimi