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

Dies ist meine XML-Datei. Ich möchte Daten einfügen, die die Dom-Methode zwischen den Tags verwenden. Ich bin ein Anfänger in PHP und Xml-Technologien. Ich habe erfolgreich aus dieser Datei erstellt und gelesen, konnte aber mit php keine Daten darin eingeben.Wie fügt man Daten in XML-Datei mit PHP ein?

Der Code für die Erstellung ist wie folgt: -

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

Der Code für das Lesen ist wie folgt: -

$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; 

jemand mit Einfügen und Aktualisieren helfen kann. Danke!

+0

könnten Sie Ihre Frage klarer machen. Wo erhalten Sie Ihren Text, um Ihr XML zu aktualisieren, oder legen Sie Ihre endgültige XML-Struktur fest. – tkt986

Antwort

0

Manchmal kann PHP + XML ein wenig unangenehm sein. Die meiste Zeit ich dieses Stück Code nützlich finden (ein Bit für Ihre Situation neu geschrieben):

$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"); 

Möglicherweise möchten Sie diesen Code erweitern, um der zweiten Ebene XML-Tags zu schreiben.

0

Ich habe nicht viel Erfahrung mit der DOMDocument-Klasse, aber es könnte einfacher sein, stattdessen mit einem simpleXML-Objekt zu arbeiten. es ist ein bisschen schneller zu holen.

http://us.php.net/simplexml

können Sie dann nur

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

damit Sie mehrere untergeordnete Elemente zu behandeln, die den gleichen Namen, den Sie auf die gleiche Weise haben würde ein Array behandeln, so dass Sie durch sie durchlaufen können, oder auf sie zugreifen nach Index. Sie können auch simplexml-Objekte aus Dateien oder Strings erstellen. Hör zu.

Verwandte Themen