Aktualisieren / Anhängen von Daten an XML-Datei mit PHP

das hört sich vielleicht ganz einfach an, aber ich möchte diese frage trotzdem im forum posten. Ich habe eine XML-Datei, an die nach dem Hauptelement Daten angehängt werden müssen, und speichere die XML-Datei, ohne die vorhandene XML-Datei zu überschreiben, sondern um die Daten an bereits vorhandene Daten anzuhängen und die XML-Datei zu aktualisieren.

Zum Beispiel sehen meine XML-Daten ungefähr so ​​aus:

<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>

Ich möchte ein weiteres Produkt mit allen Informationen hinzufügen und die neu hinzugefügten Daten oben anhängen, damit die neu hinzugefügten Daten nach dem Header-Inhalt kommen.

Daten, die hinzugefügt werden sollen:

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

Die aktualisierte XML-Datei sollte folgendermaßen aussehen:

<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>

Jeder nützliche Rat oder ein Stück Beispielcode wäre wirklich hilfreich.

Bearbeiten:

Entschuldigung Leute, ich habe keinen PHP-Code gepostet, meine Schuld. Hier ist der Code, an dem ich gearbeitet habe:

Vielen Dank

<?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');
    }
?>

Meine XML-Datei wird aktualisiert, aber die Daten werden dem ersten Kind hinzugefügt und das auch unten. Stattdessen möchte ich Daten nach und am Anfang hinzufügen, wie oben gezeigt. Hier ist meine Ausgabe:

<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>

Irgendein Rat?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage