Ho un file XML che assomiglia a questo:Come aggiungere a un file XML con PHP preferibilmente con SimpleXML
<?xml version="1.0" encoding="utf-8"?>
<data>
<config>
</config>
<galleries>
// We have loads of these <gallery>
<gallery>
<name>Name_Here</name>
<filepath>filepath/file.txt</filepath>
<thumb>filepath/thumb.png</thumb>
</gallery>
</galleries>
</data>
ho cercato di capire come aggiungere un'altra galleria <> alla mia sopra xml file. Ho provato a utilizzare simplexml ma non ho potuto farlo funzionare, quindi ho provato questo answer e uno bunch di altri su StackOverflow. Ma non riesco a farlo funzionare.
Posso leggere facilmente da un file xml e ottenere tutte le informazioni di cui ho bisogno, ma devo essere in grado di aggiungere un tag galleria ad esso, Il codice qui sotto non funziona e quando lo fa, posso solo inserire 1 elemento, e lo inserisce 3 volte, non lo capisco.
$data = 'xml/config.xml';
// Load document
$xml = new DOMDocument;
$xml->load($data); #load data into the element
$xpath = new DOMXPath($xml);
$results = $xpath->query('/data/galleries');
$gallery_node = $results->item(0);
$name_node = $xml->createElement('name');
$name_text = $xml->createTextNode('nametext');
$name_node = $name_node->appendChild($name_text);
$gallery_node->appendChild($name_node);
echo $xml->save($data);
Ho avuto un sacco di tentativi falliti a questo, questo dovrebbe essere così facile. Fondamentalmente voglio aggiungere una galleria con nome file pathpath e thumb a questo stesso file (xml/config.php).
Come ho detto, l'ho fatto funzionare, ma non è formattato e non ha il tag della galleria.
Domanda
Come si inserisce un'altra galleria <> (con i bambini) nel file XML di cui sopra?
Preferibilmente anche usando SimpleXML
Questo funziona! ma lo emette 3 volte nel mio xml, qualche idea del perché lo farebbe? emette 3 serie di e bambini sulla stessa riga, lo ha fatto anche con il mio script precedente? qualche indizio? –
Anil
Probabilmente stai facendo qualcosa di sbagliato in un ciclo. Niente di ciò che hai mostrato, o che ho dato, ripeterà l'elemento della galleria tre volte. – salathe