创建新的XML文件并将数据写入其中?

时间:2010-01-10 20:43:01

标签: php xml file

我需要创建一个新的XML文件并将其写入我的服务器。所以,我正在寻找创建新XML文件的最佳方法,为其编写一些基本节点,保存它。然后再打开它并写下更多数据。

我一直在使用file_put_contents()来保存文件。但是,要创建一个新的并编写一些基本节点,我不确定最好的方法。

想法?

3 个答案:

答案 0 :(得分:63)

DOMDocument是一个很好的选择。它是专门为创建和操作XML文档而设计的模块。您可以从头开始创建文档,或打开现有文档(或字符串)并导航和修改其结构。

$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");

重新开启并写下:

$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");

答案 1 :(得分:13)

PHP有几个XML Manipulation库。

Document Object Model(DOM)方法(这是W3C标准,如果您在其他环境(如Web浏览器或Java等)中使用它,则应该很熟悉)。允许您按如下方式创建文档

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

即使您以前没有遇到过DOM,也值得投入一些时间,因为该模型已在许多语言/环境中使用。

答案 2 :(得分:2)

使用FluidXML,您可以非常轻松地生成和存储XML文档。

$doc = fluidxml();

$doc->add('Album', true)
        ->add('Track', 'Track Title');

$doc->save('album.xml');

从文件加载文档同样简单。

$doc = fluidify('album.xml');

$doc->query('//Track')
        ->attr('id', 123);

https://github.com/servo-php/fluidxml