我有一个 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 但无法让它工作,所以我尝试了这个answer https://stackoverflow.com/questions/6214562/merging-xml-in-php以及ASAbunch https://stackoverflow.com/questions/5832676/xml-parsing-with-simple-xmlstackoverflow 上的其他人。但就是无法让它发挥作用。
我可以轻松地从 xml 文件中读取并获取我需要的所有信息,但我需要能够向其附加画廊标签,下面的代码不起作用,当它起作用时,我只能插入 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);
我已经尝试过很多次失败了,这应该很容易。基本上我想添加一个带有孩子名字文件路径和拇指的画廊到同一个文件(xml/config.php)。
就像我说的,我有点让它工作,但它没有格式化,并且没有画廊标签。
Question
如何将另一个 (带有子项)插入到上面的 XML 文件中?
最好甚至使用 simpleXML
通过 SimpleXML,您可以使用addChild() http://php.net/simplexmlelement.addchild method.
$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 并不是一个复杂的步骤,并且在lots这里的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)