我有这个test.xml:
<?xml version="1.0"?>
<Images>
<Image>
<Id>765</Id>
<Title>Img title 1</Title>
<Name>some_path_to_img.jpg</Name>
</Image>
</Images>
我尝试将新'<Image>'
追加到'<Images>'
,但没有成功。
这是我的代码:
function update_xml_file() {
$xml = new DOMDocument();
$xml->load(file_get_contents('test.xml'));
$xml->formatOutput = true;
$base_node = $xml->getElementsByTagName('Images')->item(0);
$newimage = $xml->createElement("Image");
$img_id = $xml->createElement("Id");
$img_title = $xml->createElement("Title");
$img_name = $xml->createElement("Name");
$img_id->nodeValue = '766';
$img_title->nodeValue = 'Image title 2';
$img_name->nodeValue = 'some_path_to_img2.jpg';
$newimage->appendChild($img_id);
$newimage->appendChild($img_title);
$newimage->appendChild($img_name);
$base_node->appendChild($newimage);
umask();
$xml->save("test.xml");
}
环顾相关的讨论对我没有帮助。 谢谢你的时间。
答案 0 :(得分:2)
您在加载xml数据的代码中有一点错字。
将其更改为:
$xml->loadXML(file_get_contents('test.xml'));
或(更好)
$xml->load('test.xml');
的文档
答案 1 :(得分:-1)
您也可以使用github中的这个包来简化http://github.com/toureiliass/xdt
你可以用几行代码
来完成$con = new XDT();
$con->connect('test.xml');
$con->getDocumentRootElement()->append('<image><id>765</id><title>some title</title><name>some_path_to_image.jpg</name></image>');
$con->save();