[XML] SimpleXML écrire dans un fichier XML existant
bonjour,
j'aimerais updater un fichier XML avec simpleXML.
Pour cela j'utilise un petit formulaire qui me permet de rentrer des données.
Le fichier xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<image>test13.jpg</image>
<titre>titre 1</titre>
<legende><![CDATA[<h1>This is a headline</h1><p>This is a line of text. <span class='bluetext'>This line of text is colored blue.</span></p>]]></legende>
<hauteur>273</hauteur>
<largeur>500</largeur>
</item>
<item>
<image>test12.jpg</image>
<titre>titre 2</titre>
<legende>Légende 2</legende>
<hauteur>273</hauteur>
<largeur>500</largeur>
</item>
<item>
<image>test11.jpg</image>
<titre>titre 3</titre>
<legende>Légende 3</legende>
<hauteur>273</hauteur>
<largeur>500</largeur>
</item>
<item>
<image>test10.jpg</image>
<titre>titre 4</titre>
<legende>Légende 4</legende>
<hauteur>273</hauteur>
<largeur>500</largeur>
</item>
</items> |
et le code php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
if(isset($_POST['submititems'])){
if (file_exists($XMLfile)) {
$XML = simplexml_load_file($XMLfile);
foreach($_POST as $fieldset=>$currentitem){
if($fieldset != 'nbimgs'&& $fieldset != 'submititems'){
$XMLobject = new SimpleXMLElement ($XML);
$XMLobject->items[5]->addChild('item');
foreach($currentitem as $propname=>$propval){
$nouvelitem->$propname=$propval;
}
$i++;
}
}
} else {
exit('Failed to open XML file.');
}
} |
quand je teste j'ai l'erreur suivante :
Citation:
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 6: parser error : Start tag expected, '<' not found
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML'
... help:calim2: