frankx: XML mit PHP bearbeiten

Beitrag lesen

Hellihello

Hallo,

ich habe mir kurz XPATH angesehen, das Auslesen eines XML ist möglich, aber auch das Ersetzen bestehender Ausdrücke?

genau das geht glaub ich nicht.

  
$xml_string = '<?xml version="1.0"?>  
<artikel>  
<beschreibung type="short">  
text1  
</beschreibung>  
<beschreibung type="long">  
text2  
</beschreibung>  
</artikel>';  
$sx = simplexml_load_string($xml_string);  
var_dump($sx);  
$sx->beschreibung[0]="neuerText1(short)";  
var_dump($sx);  

funktioniert erstmal. Musste aber wissen, an welcher Stelle das ist.

  
foreach ($sx->beschreibung as $key => $beschreibung) {  
$beschreibung) {  
 if ($beschreibung["type"]=="long") {  
  var_dump($key); // bringt komischerweise "beschreibung"  
                                // somit geht dann $sx->beschreibung[$key] nicht zu setzen.  
 }  
}  
var_dump($sx);  
  

bringt nischt.

  
  
$neu = $sx->xpath("/artikel/beschreibung[@type='long']");  
var_dump($neu);  

bringt ein Array von Objekten, das sind aber keine Referenzen auf die Objektknoten im simpleXmlObjekt, können also so nicht verändert werden.

An der Stelle würd ich mal immer überlegen, warum du das denn genau so änderen wollen würdest. U.u. musst du dann vielleicht die DomDocument-Funktionen bemühen.

Dank und Gruß,

frankx

--
tryin to multitain  - Globus = Planet != Welt