PHP更新简单的Xml文件

时间:2018-01-26 13:43:29

标签: php xml dom append

我已经搜索了一下,答案似乎在于使用DOM对象,但经过大量的修补,我无法使任何示例工作,我无法解决我做错了什么。我可能只是使用了错误的方法。

xml非常简单..

<?xml version="1.0" encoding="utf-8"?>
<courseinfo>
    <info>Under inspection (decision 13:15)</info>
    <buggies>Yes</buggies>
    <trolleys>No</trolleys>
</courseinfo>

我想要做的就是使用表单字符串更新和保存子节点<info><buggies><trolleys>

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

如果需要修改现有的XML文档,可以使用SimpleXML Extension使用标准的PHP对象访问来操作它。

$xml = file_get_contents('foo.xml');

$sxml = simplexml_load_string($xml);

$info = 'New info';
$buggies = 'New buggies';
$trolleys = 'New trolleys';

$sxml->info = $info;
$sxml->buggies = $buggies;
$sxml->trolleys = $trolleys;

file_put_contents('foo.xml', $sxml->asXML());

请参阅https://eval.in/942615

答案 1 :(得分:0)

最合适的方法是使用PHP本机DomDocument类。

$oDoc = new DomDocument('1.0', 'utf-8');

$oInfo = $oDoc->createElement('info', 'under inspection (decision 13:15)');
$oBuggies = $oDoc->createElement('buggies', 'Yes');
$oTrolleys = $oDoc->createElement('trolleys', 'No');

$oCourseinfo = $oDoc->createElement('courseinfo');
$oCourseinfo->appendChild($oInfo);
$oCourseinfo->appendChild($oBuggies);
$oCourseinfo->appendChild($oTrolleys);

$oDoc->appendChild($oCourseinfo);

echo $oDoc->saveXML();

简单如馅饼。