繁体   English   中英

尝试使用php simplexml编辑xml文件

[英]trying to edit xml file using php simplexml

所以我试图使用php的simplexml扩展名来编辑xml文件,但是当我尝试使用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...

并且我之前曾尝试搜索这些帖子,但它们与我的失败示例代码相同,即使用simpleXMLPHP 编辑XML的东西SimpleXML错误更新xml文件

第二个是不可能的,因为SimpleXMLElement只能采用格式正确的XML字符串或XML文档的路径或URL。 但是,您正在传递由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');
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM