2017-10-29 107 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非常感謝主席先生和它的偉大工程 –