2017-01-02 4 views
0

Wie kann ich ein anderes Kind einer XML-Datei als FirstChild in PHP bekommen? Ich habe einen Code wie folgt:Wie geht man in PHP auf ein anderes Kind als 'firstChild' der XML-Datei ein?

 $root = $xmldoc->firstChild; 

Kann ich einfach in das zweite Kind oder ein anderes bekommen?

+1

Wie sieht Ihre XML-Struktur aus? Bitte geben Sie ein detaillierteres Beispiel und erklären Sie, wie der Knoten aufgerufen wird, den Sie erhalten möchten. PHP hält mehrere Methoden zum Abrufen von XML-Knoten bereit. – Marcel

+0

Danke für Ihre Antwort. Ich habe eine Struktur wie folgt aus: von meinem Code * $ root = $ xmldoc-> first; * I Zugang zu können> XMLData <, aber ich möchte etwas zu> Daten servitus

+0

Per Definition, in einem wohlgeformten XML-Dokument [gibt es nur ein Wurzelelement] (https://www.w3.org/TR/xml/#dt-root), in Ihrem Beispiel 'xmldata'; das Element 'data' ** ist nicht das zweite Kind der XML-Datei **, es ist das erste Kind des Wurzelelements (und natürlich das Wurzelelement und jedes andere Element kann mehrere untergeordnete Elemente haben). – lfurini

Antwort

0

Eine mögliche Lösung für Ihr Problem könnte so etwas sein. Zuerst deine XML-Struktur. Sie haben gefragt, wie Sie einen Elementknoten zum Datenknoten hinzufügen.

$xml = <<< XML 
<?xml version="1.0" encoding="utf-8"?> 
<xmldata> 
    <data> 
     <item>item 1</item> 
     <item>item 2</item> 
    </data> 
</xmldata> 
XML; 

In PHP ist eine mögliche Lösung das Objekt DomDocument.

$doc = new \DomDocument(); 
$doc->loadXml($xml); 

// fetch data node 
$dataNode = $doc->getElementsByTagName('data')->item(0); 

// create new item node 
$newItemNode = $doc->createElement('item', 'item 3'); 

// append new item node to data node 
$dataNode->appendChild($newItemNode); 

// save xml node 
$doc->saveXML(); 

Dieses Codebeispiel wurde nicht getestet. Habe Spaß. ;)

+0

$ root = $ xmldoc-> getElementsByTagName ('Daten') -> Element (0); Danke das funktioniert :) – servitus

Verwandte Themen