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 anlamına gelir ve veri yapısını oluşturmak ve iletmek için özel etiketler tanımlamanıza olanak tanıyan etiket tabanlı bir formattır.
  • ???? DOM: Belge Nesne Modeli (DOM), bir XML veya HTML belgesini ağaç yapısı olarak görür; bu nedenle kod, düğümler arasında gezinebilir ve düğümleri düzenleyebilir.
  • 🔄 XML Ayrıştırıcıları: Ayrıştırıcı, bir XML belgesini PHP'nin anlayabileceği bir DOM nesnesine dönüştürür. JavaSenaryo veya Python Okuyabilir ve değiştirebilir.
  • ???? XML okuma: simplexml_load_file, bir dosyayı nesnelere yükler, böylece kayıtlara $xml->record->name gibi ok sözdizimiyle erişebilirsiniz.
  • XML oluşturma: DOMDocument sınıfı, createElement ve appendChild yöntemlerini kullanarak düğüm düğüm bir belge oluşturur, ardından save yöntemiyle dosyayı yazar.
  • 🇧🇷 SimpleXML ve DOM karşılaştırması: SimpleXML okuma işlemleri için hızlıdır, DOMDocument ise hassas oluşturma ve karmaşık işlemler için uygundur.
  • 🤖 Yapay Zeka Yardımı: Yapay zeka araçları, belirli bir XML yapısı için ayrıştırma kodu üretebilir ve XML, JSON ve PHP dizileri arasında dönüştürme yapabilir.

PHP ve XML

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'i okuyun

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

PHP kullanarak XML belgesi oluşturma

movies_list.xml dosyasını açın.

PHP kullanarak XML belgesi oluşturma

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.

SSS

Her ikisi de yapılandırılmış veri depolar, ancak XML etiketler kullanır ve öznitelikleri, yorumları ve şemaları desteklerken, JSON daha hafiftir ve doğrudan dizilere ve nesnelere eşlenir. JSON API'lar için yaygındır; XML ise belgeler ve yapılandırma için uygundur.

Dosyayı SimpleXML veya DOMDocument ile yükleyin, düğüm değerlerini veya özniteliklerini değiştirin, ardından tekrar yazın. SimpleXML ile özelliği düzenleyin ve asXML('file.xml') çağrısını yapın; DOMDocument ile düğümü düzenleyin ve save() çağrısını yapın.

XPath, bir XML belgesindeki düğümleri seçmek için kullanılan bir sorgu dilidir. PHP'de, SimpleXML ile `$xml->xpath('//record/name')` çağrısını yapabilir veya eşleşen öğeleri arama yapmadan almak için DOMXPath sınıfını kullanabilirsiniz.ping Ağacın tamamı boyunca.

Evet. Yapay zeka, formatlar arasında dönüştürme yapmak için simplexml_load_string, json_encode ve json_decode fonksiyonlarını kullanarak kod üretebilir ve XML öznitelikleri veya karışık içerik gibi düzgün eşleşmeyen verileri işaretleyebilir. Sonucu doğrulayın.

Evet. XML dosyanızdan bir örnek yapıştırın, yapay zeka tam olarak ihtiyacınız olan öğeleri ve öznitelikleri okuyan, tekrarlanan kayıtlar için döngüler de içeren SimpleXML veya DOMDocument kodu üretebilir. Gerçek dosyalar üzerinde test edin.

Bu yazıyı şu şekilde özetleyin: