xml Knoten löschen funktioniert nicht

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

  • xml Knoten löschen funktioniert nicht

    Hi,
    ich bin neu hier. Habe eine Frage bzgl. Knoten löschen in xml Dateien. Habe ein wenig einen Script bearbeitet, wie ich glaube das er funktioiert, doch er macht rein gar nichts. Hier ist die php Datei und die dazugehörige xml....
    [PHP<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Untitled Document</title>
    </head>

    <body>
    <?php
    function Delete($katID, $ID)
    {
    $doc = DOMDocument::load("inhalt.xml");
    $xp = new DOMXPath($doc);

    $nodeList = $xp->query(sprintf('item link_[ID = "%s"]', $ID));

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



    $doc->save($file);
    }

    ?>
    </body>
    </html>[/PHP]
    Code:
    <?xml version="1.0"?>
    <rss version="2.0">
    <channel>
    <title>Projekt News</title>
    <link>[url]http:///[/url]</link>
    <description>Projekt</description>
    <language>de</language><item link_id="1144915426">
             			<title>Jetzt</title> 
             			<link>1144915426</link> 
             			<description>Hallo1</description> 
             			<category>privat</category> 
             			<pubDate>13. April 2006</pubDate> 
    			  		</item><item link_id="1144914537"> 
             			<title>Test2005</title> 
             			<link>1144914537</link> 
             			<description>Hallo2</description> 
             			<category>oeffentlich</category> 
             			<pubDate>13. April 2006</pubDate> 
    			  		</item>
    
    </channel>
    </rss>
    Wo liegt der Fehler?

  • #2
    Vielleicht seh ich's ja falsch, aber die Funktion Delete wird nie aufgerufen...sie wird in deinem Code nur deklariert.

    Edit: Außerdem ist dein XPath-Ausdruck irgendwie wirr.
    Was du vermutlich meinst ist wohl das hier:
    Code:
    item[@link_id = "%s"]
    Der query() gibt dir dann 'ne NodeList zurück, die nur einen Knoten enthalten sollte. Das löschen erfolgt dann also so:
    PHP-Code:
    $dieNodeList->item(0)->parentNode->removeChild($dieNodeList->item(0)); 
    Zuletzt geändert von Nezzar; 18.04.2006, 16:23.
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

    Kommentar


    • #3
      Danke für die Antwort. Sie wurde wirklich nicht aufgerufen. Jetzt läuft alles.

      Kommentar


      • #4
        Hallo,

        darf ich dich mal fragen, wie du die Funktion Delete nun aufgerufen hast. Stehe vor dem gleichen Problem wie du.

        Kommentar


        • #5
          tatsache ist, er hat sie letzten endes ja _doch_ aufgerufen. hast du das auch? vielleicht zeigst du mal?

          Kommentar

          Lädt...
          X