如何使用PHP附加到XML文件,最好使用SimpleXML

前端之家收集整理的这篇文章主要介绍了如何使用PHP附加到XML文件,最好使用SimpleXML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 XML文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<data>
    <config>
    </config>

    <galleries>
         // We have loads of these <gallery>
         <gallery>
             <name>Name_Here</name>
             <filepath>filepath/file.txt</filepath>
             <thumb>filepath/thumb.png</thumb>
         </gallery>
    </galleries>
</data>

我一直试图弄清楚如何追加另一个<画廊>到我上面的xml文件.我尝试使用simplexml但无法使其工作,所以我在stackoverflow上尝试了这个answer以及其他bunch.但是无法让它发挥作用.
我可以轻松地从xml文件中读取并获取我需要的所有信息,但是我需要能够为它添加一个gallery标签,下面的代码不起作用,当它执行时,我只能插入1个元素,并且它插入它3次,我不明白这一点.

$data = 'xml/config.xml';
 // Load document
 $xml = new DOMDocument;
 $xml->load( $data ); #load data into the element

 $xpath = new DOMXPath($xml);
 $results = $xpath->query('/data/galleries');
 $gallery_node = $results->item(0);

 $name_node = $xml->createElement('name');
 $name_text = $xml->createTextNode('nametext');

 $name_node = $name_node->appendChild($name_text);

 $gallery_node->appendChild($name_node);

 echo $xml->save($data);

我有很多失败的尝试,这应该是这么容易.基本上我想添加一个带有子名称filepath和thumb的库到同一个文件(xml / config.PHP).

就像我说的,我有点工作,但它没有格式化,并没有画廊标签.


如何插入另一个<画廊> (带孩子)进入上面的XML文件
甚至优选使用simpleXML

使用SimpleXML,您可以使用 addChild()方法.
$file = 'xml/config.xml';

$xml = simplexml_load_file($file);

$galleries = $xml->galleries;

$gallery = $galleries->addChild('gallery');
$gallery->addChild('name','a gallery');
$gallery->addChild('filepath','path/to/gallery');
$gallery->addChild('thumb','mythumb.jpg');

$xml->asXML($file);

请注意,SimpleXML不会为您“格式化”XML,但是从无格式的SimpleXML表示到整齐缩进的XML并不是一个复杂的步骤,这里有很多问题.

猜你在找的PHP相关文章