2017-10-29 82 views
2

,所以我尝试使用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 simpleXMLPHP SimpleXML error update xml file

回答

0

第二个是不可能的,因为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'); 
} 
+0

编辑:经过一些测试,我再次使用'$设置 - > asXml(“的settings.xml”);'只有这么节省整个设置的XML文件的内容:d非常感谢主席先生和它的伟大工程 –