簡體   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