XML-Element mittels PHP löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML-Element mittels PHP löschen

    Hallo!

    Ich möchte gerne ein XML-Element aus einer XML-Datei mittels eines PHP-Scripts löschen.
    Ich habe nun folgendes versucht:
    XML-Datei
    PHP-Code:
    <anmeldungen>
      <
    teilnehmer>
         <
    name>
           
    Test1
         
    </name>
         <
    email>
           
    email1
         
    </email>
       </
    teilnehmer>
      <
    teilnehmer>
         <
    name>
           
    Test2
         
    </name>
         <
    email>
           
    email2
         
    </email>
       </
    teilnehmer>
    </
    anmeldungen
    PHP-Script:

    PHP-Code:
    <?
    $name=$_GET["name"];
    $doc = new DOMDocument;

    $doc->Load('daten2.xml');

    $xpath = new DOMXPath($doc);

    $nodeList = $xpath->query(sprintf('teilnehmer[name = "%s"]', $name));

    $nodeList->item(0)->parentNode->removeChild($nodeList->item(0));

    ?>
    Ich bekomme nun immer die Fehlermeldung:
    Parse error: parse error, unexpected T_OBJECT_OPERATOR in /var/www/sii/htdocs/lernwelten/neu/loeschen.php on line 11
    Wobei line 11 die mit $nodeList->item(0)... ist

    Kann dies daran liegen, dass die PHP-Version zu alt ist und evtl. DOM nicht unterstützt wird? Version 4.3...

    Schönen Dank für Eure Hilfe!

    Nils

  • #2
    Jep, diese Art der Dereferenzierung funktioniert erst ab PHP5. Die betreffende Zeile also durch folgenden Code ersetzen:
    PHP-Code:
    $nodeToDel $nodeList->item(0);
    $nodeToDel->parentNode->removeChild($nodeToDel); 
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

    Kommentar


    • #3
      Vielen Dank für deine Hilfe!

      Ich habe die Änderung nun durchgeführt und bekomme nun die Meldung:

      Fatal error: Cannot instantiate non-existent class: domdocument in /var/www/sii/htdocs/lernwelten/neu/loeschen.php on line 4

      Wobei line 4 "$doc = new DOMDocument;" ist.

      Wer kann mir helfen?

      Danke!

      Nils

      Kommentar


      • #4
        Hab ich bei der letzten Antwort gar nicht gemerkt: Du versuchst mit der DOM-Extension von PHP5 zu arbeiten, benutzt aber PHP4.

        Lösung: PHP4's DOM-Implementation benutzen
        "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

        Kommentar

        Lädt...
        X