2011-02-05 4 views
24

フィールドには1つの値しかないので、xmlファイルに設定を保存することにしました。xmlファイルのCRUDノードとノード値の簡単なプログラム

私の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を使ってCRUDすることができます。 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'); 

はさらにusage examplesAPI descriptionのためのPHPのマニュアルを参照してください。追記で

あなたは本当にただのキー/値のペアを持っている場合、あなたはまた、長いTTLでそれらまたはDBAあるいはAPCmemcachedなどのキー/値ストアを保存するためにplain old PHP arrayを使用することができます。

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 
} 

あなたはhttp://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=

でライブ上記の例を試すことができますXQueryのPHP拡張モジュールをインストールする方法についてはhttp://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery

で入手できます。
+1

+1:その拡張子は本当に揺れます。 – hakre

関連する問題