PHP XML Eğitimi: Örnekle Oluşturun, Ayrıştırın, Okuyun
⚡ Akıllı Özet
PHP ve XML, sistemler arasında veri yapılandırmak, depolamak ve alışverişini sağlamak için birlikte çalışır. Bu kılavuz, XML, DOM ve XML ayrıştırıcılarını açıklayarak, SimpleXML ile bir XML belgesinin nasıl okunacağını ve DOMDocument sınıfı ile nasıl oluşturulacağını gösterir ve her birinin ne zaman kullanılacağını açıklayarak sona erer.

XML nedir?
XML, Genişletilebilir İşaretleme Dili'nin kısaltmasıdır.
XML, verileri yapılandırmak, depolamak ve bir sistemden diğerine aktarmak için kullanılır.
XML, HTML'ye benzer. Açılış ve kapanış etiketleri kullanır. HTML'den farklı olarak, XML kullanıcıların kendi etiketlerini tanımlamasına olanak tanır.
DOM nedir?
DOM, Belge Nesne Modeli'nin kısaltmasıdır.
Bu, veri erişimi ve manipülasyonunun nasıl yapılacağını tanımlayan, platformlar arası ve dilden bağımsız bir standarttır:
- HTML
- XHTML
- XML
DOM XML, XML belgelerine erişmek ve bunları değiştirmek için kullanılır. BT XML belgesini görüntüler Bir ağaç yapısı gibi.
XML Ayrıştırıcılar
XML ayrıştırıcısı, XML belgesini XML Belge Nesne Modeli (DOM) nesnesine çeviren bir programdır.
XML DOM nesnesi daha sonra aşağıdaki yöntemle manipüle edilebilir. JavaSenaryo, PythonPHP ve diğer diller.
XML belgesini ayrıştırırken "<" ve ">" gibi özel karakterleri yok saymak için kullanılan CDATA anahtar kelimesi, (ayrıştırılmamış) Karakter Verisi'nin kısaltmasıdır.
Neden XML kullanıyorsunuz?
- SOAP ve REST gibi web servisleri, bilgi alışverişi için XML formatını kullanır. XML'in ne olduğunu ve nasıl çalıştığını öğrenmek, modern uygulamaların web servislerinden yoğun olarak yararlanması nedeniyle geliştirici olarak size rekabet avantajı sağlar.
- XML belgeleri, bir uygulamanın yapılandırma ayarlarını saklamak için kullanılabilir.
- Bu özellik, kendi özel etiketlerinizi oluşturmanıza olanak tanıyarak daha esnek bir kullanım sağlar.
XML Belgesi örneği
Diyelim ki siz geliştiriyorsunuz.ping XML formatında veri alan bir web servisinden veri çeken bir uygulama.
Aşağıda XML belgesinin bir örneği yer almaktadır.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
İŞTE,
- “ “kullanılacak XML sürümünü ve kodlamasını belirtir”.
- “ ” kök elemanıdır.
- “ … "Çocuk öğeleri" her çalışan kaydı için bir tanedir.
PHP kullanarak XML nasıl okunur
Şimdi, çalışanların XML belgesini okuyacak ve sonuçları bir web tarayıcısında görüntüleyecek kodu yazalım. index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
İŞTE,
- “$xml = simplexml_load_file('employees.xml');” ifadesi, simplexml_load_file fonksiyonunu kullanarak employees.xml adlı dosyayı yükler ve içeriğini $xml değişkenine atar.
- “$list = $xml->record;” ifadesi, kayıt düğümlerinin içeriğini alır.
- “for ($i = 0; $i < count(…)…” diziyi okuyan ve sonuçları çıktılayan for döngüsüdür.
- “$liste[$i]->öznitelikler()->man_no;” elemanın man_no niteliğini okur
- “$liste[$i]->isim;” alt öğe adının değerini okur
- “$liste[$i]->konum;” alt öğenin konumunun değerini okur
XML Okuyucusunun Test Edilmesi
index.php dosyasını phptuts/xml klasörüne kaydettiğinizi varsayarak, aşağıdaki klasöre gidin: URL http://localhost/phptuts/xml/index.php
PHP kullanarak XML belgesi nasıl oluşturulur
Şimdi PHP kullanarak XML belgesinin nasıl oluşturulacağına bakacağız.
Aşağıdaki kod, PHP'nin yerleşik DOMDocument sınıfını kullanarak bir XML belgesi oluşturur.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'Comedy'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
İŞTE,
- “$dom = new DOMDocument();” ifadesi DOMDocument sınıfının bir örneğini oluşturur.
- “$dom->kodlama = 'utf-8';” belge kodlamasını utf-8 olarak ayarlar
- “$dom->xmlVersion = '1.0';” 1.0 sürüm numarasını belirtir
- “$dom->formatOutput = doğru;” çıktının iyi biçimlendirilmiş olmasını sağlar
- “$root = $dom->createElement('Filmler');” Filmler adlı kök düğümü oluşturur
- “$attr_movie_id = new DOMAttr('movie_id', '5467');” ifadesi, film düğümünün movie_id özniteliğini tanımlar.
- “$dom->createElement('ElementName', 'ElementValue')” bir alt düğüm oluşturur. ElementName, öğenin adını belirtir, örneğin Başlık. ElementValue ise alt düğümün değerini ayarlar, örneğin Kampanya.
- “$root->appendChild($movie_node);” ifadesi, film düğümünü Movies kök düğümüne ekler.
- “$dom->appendChild($root);” Kök düğümü XML belgesine ekler.
- “$dom->save($xml_file_name);” XML dosyasını web sunucusunun kök dizinine kaydeder.
- “echo “$xml_file_name başarıyla oluşturuldu”;” komutu başarı mesajını görüntüler.
XML'i test etme Creator
create_movies_list.php dosyasını phptuts/xml klasörüne kaydettiğinizi varsayarak, aşağıdaki klasöre gidin: URL http://localhost/phptuts/xml/create_movies_list.php
movies_list.xml dosyasını açın.
SimpleXML ve DOMDocument karşılaştırması
PHP, XML ile çalışmak için iki ana yöntem sunar. SimpleXML, esas olarak veri okumanız gerektiğinde en iyisidir, DOMDocument ise belge oluşturma ve yoğun düzenleme için daha ince kontrol sağlar. Aşağıdaki tabloda bunlar karşılaştırılmıştır.
| Görünüş | SimpleXML | DOMDbelge |
|---|---|---|
| Kullanım kolaylığı | Çok basit; belge iç içe nesneler gibi davranıyor. | Daha ayrıntılı, düğüm tabanlı API |
| İçin en iyisi | Okuma ve hafif düzenleme | Belge oluşturma ve karmaşık işlemler |
| Erişim stili | $xml->kayıt->adı | createElement() ve appendChild() |
| XPath desteği | Evet, ->xpath() aracılığıyla. | Evet, DOMXPath sınıfı aracılığıyla. |
Pratik bir kural olarak, veri akışlarını ve basit dosyaları okurken öncelikle SimpleXML'i tercih edin ve belge oluşturmanız, belirli konumlara düğüm eklemeniz veya bir şemaya göre doğrulama yapmanız gerektiğinde DOMDocument'a geçin.



