PHP: yeni bir XML dosyası oluşturun ve buna veri yazmak?

2 Cevap php

Ben yeni bir xml dosyası oluşturmak ve benim sunucu olduğunu yazmak gerek duyuyorum. Yani, ben, yeni bir xml dosyası oluşturmak ona bazı temel düğümler yazmak, kaydetmek için en iyi yolu arıyorum. Sonra tekrar açmak ve daha fazla veri yazmak.

Ben dosyayı kaydetmek için () file_put_contents kullanıyoruz. Ancak, yeni bir tane oluşturun ve ben iyi yöntem emin değilim bazı temel düğümleri yazmak için.

Fikirler?

2 Cevap

DOMDocument mükemmel bir seçimdir. Özellikle XML belgeleri oluşturmak ve işlemek için tasarlanmış bir modül var. Sıfırdan, ya da açık mevcut belgeler (veya dizeleri) bir belge oluşturmak ve onların yapılarını gezinmek ve değiştirebilirsiniz.

$xml = new DOMDocument();
$xml_album = $xml->createElement("Album");
$xml_track = $xml->createElement("Track");
$xml_album->appendChild( $xml_track );
$xml->appendChild( $xml_album );

$xml->save("/tmp/test.xml");

Yeniden açık ve yazma:

$xml = new DOMDocument();
$xml->load('/tmp/test.xml');
$nodes = $xml->getElementsByTagName('Album') ;
if ($nodes->length > 0) {
   //insert some stuff using appendChild()
}

//re-save
$xml->save("/tmp/test.xml");

PHP XML Manipulation için çeşitli kütüphaneler vardır.

(W3C standart olduğunu ve bu tür bir Web tarayıcısı veya Java, vb gibi diğer ortamlarda kullandım eğer aşina olmalı) Document Object Model (DOM) yaklaşımı. Aşağıdaki gibi belgeler oluşturmanıza olanak sağlar

<?php
    $doc = new DOMDocument( );
    $ele = $doc->createElement( 'Root' );
    $ele->nodeValue = 'Hello XML World';
    $doc->appendChild( $ele );
    $doc->save('MyXmlFile.xml');
?>

Eğer daha önce DOM rastlamak olsa bile modeli birçok dil / ortamlarda kullanıldığı gibi, bunun biraz zaman yatırım değer.