2011-02-05 52 views
24

我決定將設置保存在xml文件中,因爲字段只有一個值。一個簡單的程序來CRUD節點和xml文件的節點值

我的XML文件是這樣

<?xml version="1.0" encoding="UTF-8"?> 
<setting> 
    <setting1>setting1 value</setting1> 
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
    .... 
    .... 
    .... 
</setting> 

任何人都可以建議我一個簡單的PHP腳本讀取,編輯,添加和刪除節點和節點的值?

回答

23

如果你的XML真的很簡單,你可以使用SimpleXML來加以修改。 SimpleXml會將XML解析爲SimpleXmlElements的樹結構。概括地說,你用這樣的:

// CREATE 
$config = new SimpleXmlElement('<settings/>'); 
$config->setting1 = 'setting1 value';   
$config->saveXML('config.xml');    

// READ 
$config = new SimpleXmlElement('config.xml'); 
echo $config->setting1; 
echo $config->asXml(); 

// UPDATE 
$config->setting1 = 'new value'; 
$config->setting2 = 'setting2 value'; 
echo $config->asXml(); 

// DELETE 
unset($config->setting1); 
$config->setting2 = NULL; 
echo $config->asXML(); 
unlink('config.xml'); 

請參考PHP手冊進一步usage examplesAPI description

在旁註,如果你真的只是鍵/值對,你也可以使用一個plain old PHP array來存儲它們或像DBA甚至APCmemcached一個鍵/值存儲用長TTL。

3

您可以使用PHP的XQuery擴展做的工作:

let $data := <setting> 
    <setting1>setting1 value</setting1> 
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
</setting> 
return { 
    (: Update :) 
    replace value of node $data/setting1/text() with "Hello World"; 
    (: Delete :) 
    delete node $data/setting2; 
    (: Read :) 
    $data 
} 

你可以試試上面的例子中住在上如何安裝XQuery的PHP擴展http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=

說明可在http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery

+1

+1:這個延伸真的很有趣。 – hakre 2012-04-29 08:31:46