[PHP - XML] Insérer un noeud avant un autre

Fermé
reaverlost Messages postés 150 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 14 mai 2018 - 16 janv. 2014 à 11:09
Bonjour,

Voila je récupère une variable post qui contient la position de l'élément XML qui va être ajouté.

Mon fichier XML est représenté ainsi :


<element>
<description>Salut</description>
</element>
<element>
<description>Bonjour</description>
</element>
<element>
<description>Bonsoir</description>
</element>


J'aimerai que si la variable position contient la valeur 2, le nouvel élément s'ajoute après la première balise élément popur avoir ça :


<element>
<description>Salut</description>
</element>
<element>
<description>NOUVEL ELEMENT</description>
</element>

<element>
<description>Bonjour</description>
</element>
<element>
<description>Bonsoir</description>
</element>


Voici le code que j'ai fais et qui ne fonctionne pas :


$xml = new DomDocument();
$xml->load("../../xml/img.xml");

$nb_enfants = $xml->getElementsByTagName("element")->length;
$nb_enfants++;

$xml_baniere = $xml->getElementsByTagName("baniere")->item(0);

$xml_element = $xml->createElement("element");
$xml_element->setAttribute("nom", $nomDestination);

$xml_description = $xml->createElement("description", "<img src='images/images_slider/".$nomDestination."' class='div1' />");
$xml_description->setAttribute("num", "");
$xml_description->setAttribute("style", "display: none;");

$xml_element->appendChild($xml_description);
$xml_baniere->appendChild($xml_element);

if (isset ($_POST) && !empty ($_POST["position"]))
{
$xml->insertBefore($xml->getElementsByTagName("baniere")->item($_POST["position"]));
}

$xml->save("../../xml/img.xml");

Merci à vous :)