2010-12-28 16 views
1
<?xml version="1.0" encoding="UTF-8"?> 
<root></root> 

これは私のxmlファイルです。私はタグの間にdomメソッドを使ってデータを挿入して更新したい。私はPHPとXml技術の初心者です。私は正常に作成し、このファイルから読むが、それを使用してデータを入力することはできませんでした。次のようにPHPを使ってxmlファイルにデータを挿入するには?

作成するためのコードは次のとおりです。 -

$doc = new DOMDocument('1.0', 'UTF-8'); 
    $ele = $doc->createElement('root'); 
    $ele->nodeValue = $uvar; 
    $doc->appendChild($ele); 
    $test = $doc->save("$id.xml"); 

次のように読書のためのコードは次のとおりです。 -

$xdoc = new DOMDocument(); 
    $xdoc->Load("$gid.xml"); 
    $candidate = $xdoc->getElementsByTagName('root')->item(0); 
    $newElement = $xdoc ->createElement('root'); 
    $txtNode = $xdoc ->createTextNode ($root); 
    $newElement -> appendChild($txtNode); 
    $candidate -> appendChild($newElement); 
    $msg = $candidate->nodeValue; 

誰かが挿入と更新を手伝うことができます。ありがとうございました!

+0

ご質問をより明確にすることができますか? XMLを更新するためのテキストをどこで取得しているのか、あるいは最終的なXML構造を記述していますか? – tkt986

答えて

0

時にはPHP + XMLが少し不快になることがあります。私は(あなたの状況のた​​めのビットを書き換え)便利なコードのこの部分を見つけるほとんどの時間:

$array = array('anxmltag'=>'hello everybody','anothertag'=>'content','lasttag'=>'maybe'); 

$doc = new DOMDocument('1.0','UTF-8'); 
$root = $doc->createElement('root'); 
$doc->appendChild($root); 

foreach($array as $key=>$value) { 

    $root->appendChild($dom->createElement($key))->appendChild($dom->createTextNode($value)); 
} 

$doc->save("$id.xml"); 

あなたはセカンドレベルのXMLタグを記述するためにこのコードを拡張することもできます。

0

私はDOMDocumentクラスの経験はあまりありませんが、代わりにsimpleXMLオブジェクトを使用する方が簡単かもしれません。それは拾うために少し速いです。

http://us.php.net/simplexml

することができますそしてちょうど

これで
$xml = new SimpleXMLElement('<root></root>'); 
$xml->addChild('test_node_name', 'value'); 
$xml->test_node_name = 'new_value'; 
echo $xml->test_node_name; 

同じ名前あなたがそれらを反復処理、またはそれらにアクセスできるように、配列を扱うのと同じ方法を持つ複数の子要素を扱いますインデックス別。ファイルや文字列からsimplexmlオブジェクトを作成することもできます。見てみな。

関連する問題