我有一个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>
Run Code Online (Sandbox Code Playgroud)
我一直试图找出如何将另一个<gallery>附加到我上面的xml文件中.我尝试使用SimpleXML的,但不能让它的工作,所以我想这个答案以及一帮上别人计算器的.但是无法让它发挥作用.
我可以轻松地从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);
Run Code Online (Sandbox Code Playgroud)
我有很多失败的尝试,这应该是这么容易.基本上我想添加一个带有子名称filepath和thumb的库到同一个文件(xml/config.php).
就像我说的,我有点工作,但它没有格式化,并没有画廊标签.
问题
如何在上述XML文件中插入另一个<gallery>(带子项)?
甚至优选使用simpleXML
sal*_*the 15
使用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);
Run Code Online (Sandbox Code Playgroud)
请注意,SimpleXML不会为您"格式化"XML,但是从无格式的SimpleXML表示到整齐缩进的XML并不是一个复杂的步骤,这里有很多问题.
| 归档时间: |
|
| 查看次数: |
21544 次 |
| 最近记录: |