尝试使用PHP的SimpleXML
问题描述:
,所以我尝试使用PHP的SimpleXML扩展编辑XML文件进行编辑XML文件,但我得到的一些问题及其 当我试图尝试使用PHP的SimpleXML
$settings = simplexml_load_file("settings.xml");
....
if(isset($aInformation['cName']))
{
$settings->general->communityname = $aInformation['cName'];
$settings->asXML();
}
但我失败了与保存步骤...
$settings = simplexml_load_file("settings.xml");
$xmlconfigs = new SimpleXMLElement($settings);
....
if(isset($aInformation['cName']))
{
$settings->general->communityname = $aInformation['cName'];
$xmlconfigs->asXML();
}
,但我有错误
String couldn't be parsed to XML...
失败过,我有线索d搜索之前那些帖子,但他们是一样的我的失败例子代码的东西edit XML with simpleXML和PHP SimpleXML error update xml file
答
第二个是不可能的,因为SimpleXMLElement
只能采取一个良好的XML字符串或路径或URL到XML文档。但是你传递的是由simplexml_load_file
返回的类SimpleXMLElement
的对象。这就是它抛出错误的原因String couldn't be parsed to XML...
在第一个asXML()
方法接受一个可选的文件名作为参数,它将当前结构保存为XML到文件。
如果未指定文件名,则此函数返回一个字符串,其成功为 ,错误时为
FALSE
。如果指定了参数,则 将返回TRUE
(如果该文件已成功写入),否则返回FALSE
。
因此,一旦您用提示更新了XML,只需将其保存回文件即可。
$settings = simplexml_load_file("settings.xml");
....
if(isset($aInformation['cName']))
{
$settings->general->communityname = $aInformation['cName'];
// Saving the whole modified XML to a new filename
$settings->asXml('updated_settings.xml');
// Save only the modified node
$settings->general->communityname->asXml('settings.xml');
}
编辑:经过一些测试,我再次使用'$设置 - > asXml(“的settings.xml”);'只有这么节省整个设置的XML文件的内容:d非常感谢主席先生和它的伟大工程 –