所以我试图使用php的simplexml扩展名编辑一个xml文件,但是我遇到了一些问题 我试过的时候
$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...
之前我曾尝试搜索这些帖子,但它们与我失败的示例代码相同edit XML with simpleXML和PHP SimpleXML error update xml file
答案 0 :(得分:0)
第二个是不可能的,因为SimpleXMLElement
只能获取格式良好的XML字符串或XML文档的路径或URL。但是您传递的是由SimpleXMLElement
返回的类simplexml_load_file
的对象。这就是它抛出错误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');
}