XML-Element mittels PHP löschen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

      Comment


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

        Comment

        Working...
        X