Salve a tutti , sto cercando di modificare/aggiungere nodi in un file xml attraverso le funzioni php.
Questo è il codice xml
<?xml version="1.0" encoding="UTF-8" ?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<title>Sample XSPF Playlist</title>
</playlist>
In questo caso vorrei aggiungere un altro tag <title> con un valore diverso.
Dopo essermi letto e riletto la documentazione di php.net con tanto di esempi non sono ancora riuscito a venirne a capo.
Come prima soluzione ho fatto un get_elements_by_tagname del tag title e subito dopo un append_child. L'output che mi da è spostare(invece che copiare) il tag title alla fine di tutto. Ecco il codice:
<?php
if (!$dom =domxml_open_file("e:\easyphp1-8\www\under\player\playlist2.xml")) {
echo "Error while parsing the document\n";
exit;
}
$elements = $dom->get_elements_by_tagname("title");
$element = $elements[0];
$dom->append_child($element);
echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>
Poi ho provato ad usare clone_node e set_content per modificare il contenuto del tag
$elements = $dom->get_elements_by_tagname("title");
$element = $elements[0];
$temp = $element->clone_node(true);
$temp->set_content("Nuovo contenuto");
$dom->append_child($temp);
però come output mi esce
<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1">
<title>Sample XSPF Playlist</title>
</playlist>
<title xmlns="http://xspf.org/ns/0/">Sample XSPF PlaylistNuovo contenuto</title>
non capisco perchè nel tag title mi setta l'attributo xmlns="http://xspf.org/ns/0/" di playlist e inoltre come posso modificare il contentuto del nuovo tag title ? come vedete ho provato set_content ma invece di piazzare il contenuto nuovo me lo concatena con il vecchio contenuto.
Spero che mi potrete aiutare, conto su di voi O0
Saluti
Giuseppe