mise à jour/ajouter des données au fichier xml à l'aide de php

cela peut sembler assez simple, mais encore je veux poster cette question dans le forum. J'ai un fichier xml, qui doit être ajoutée avec des données après l'élément principal et enregistrer le fichier xml sans écraser le fichier xml existant, mais pour ajouter les données pour les données déjà existant et de mettre à jour le fichier xml.

Par exemple mes données xml ressemble à quelque chose de similaire à ceci:

<maincontent>
    <headercontent>
        <product num="2102">
            <name>MSG</name>
            <category>Wellness</category>
            <available content="YES"></available>
        </product>
        <product num="2101">
            <name>YSD</name>
            <category>Music</category>
            <available content="NO"></available>
        </product>
        <product num="2100">
            <name>RCS</name>
            <category>Media</category>
            <available content="YES"></available>
        </product>
    </headercontent>
</maincontent>

Je veux ajouter un autre produit avec toutes les infos et ajouter les nouvelles données dans le haut de sorte que les nouvelles données doivent venir après le headercontent.

D'ajouter des données:

        <product num="2103">
            <name>AGB</name>
            <category>Movies</category>
            <available content="YES"></available>
        </product>

Le fichier xml mis à jour devrait être comme ceci, comme indiqué ci-dessous:

<maincontent>
    <headercontent>
        <product num="2103">
                <name>AGB</name>
                <category>Movies</category>
                <available content="YES"></available>
    </product>
        <product num="2102">
            <name>MSG</name>
            <category>Wellness</category>
            <available content="YES"></available>
        </product>
        <product num="2101">
            <name>YSD</name>
            <category>Music</category>
            <available content="NO"></available>
        </product>
        <product num="2100">
            <name>RCS</name>
            <category>Media</category>
            <available content="YES"></available>
        </product>
    </headercontent>
</maincontent>

Quelque conseil utile ou un morceau de code en exemple serait vraiment utile.

Edit:

désolé les gars, je n'ai pas posté tout code php de ma faute. Voici le code que j'ai travaillé sur:

Grâce

<?php

 $xmldoc = new DomDocument();    
    $xmldoc->formatOutput = true;

    $productNum = "2103";
    $name = "AGB";
    $category = "Movies";
    $content = "YES";

    if($xml = file_get_contents('main.xml')){
        $xmldoc->loadXML($xml);

        $root = $xmldoc->firstChild;        

        $newElement = $xmldoc->createElement('product');
        $root->appendChild($newElement);
        $numAttribute = $xmldoc->createAttribute("num");
        $numAttribute->value = $productNum;
        $newElement->appendChild($numAttribute);   

        $nameElement = $xmldoc->createElement('name');
        $root->appendChild($nameElement);
        $nameText = $xmldoc->createTextNode($name);
        $nameElement->appendChild($nameText);

        $categoryElement = $xmldoc->createElement('category');
        $root->appendChild($categoryElement);
        $categoryText = $xmldoc->createTextNode($category);
        $categoryElement->appendChild($categoryText);

        $availableElement = $xmldoc->createElement('available');
        $root->appendChild($availableElement);
        $availableAttribute = $xmldoc->createAttribute("content");
        $availableAttribute->value = $content;
        $availableElement->appendChild($availableAttribute);   


        $xmldoc->save('main.xml');
    }
?>

Mon fichier xml est mis à jour mais les données sont ajoutées à la firstchild et que trop dans le bas, au lieu de cela, je veux ajouter des données après et au début, comme indiqué ci-dessus.
Voici mon résultat:

<maincontent>
    <headercontent>
        <product num="2102">
            <name>MSG</name>
            <category>Wellness</category>
            <available content="YES"/>
        </product>
        <product num="2101">
            <name>YSD</name>
            <category>Music</category>
            <available content="NO"/>
        </product>
        <product num="2100">
            <name>RCS</name>
            <category>Media</category>
            <available content="YES"/>
        </product>
    </headercontent>
<product num="2103"/><name>AGB</name><category>Movies</category><available content="YES"/></maincontent>

Des conseils?

qu'avez-vous essayé jusqu'à présent? Ici, personne ne va vous aider si vous n'avez pas de montrer un peu d'effort de votre côté.
double possible http://stackoverflow.com/questions/194574/inserting-data-in-xml-file-with-php-dom
J'ai mis à jour le post, toutes les réponses!

OriginalL'auteur 125369 | 2012-06-13