domxml schreib problem

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

  • domxml schreib problem

    Hola,

    ich stehe grad tierisch auf dem schlauch. versuche seit 1-2 tagen was in php mit xml auf die beine zu stellen, aber gerade seh ich die bäume vor lauter wäldern nicht mehr
    wär toll wenn mir jemand aus der klemme helfen könnt

    PHP-Code:
        $dom DOMDocument::load('data/text.xml');
        
    $root $dom->documentElement;
        
    $dom->formatOutput true;
        
        
    // root wurzel tag...
        
    $eintraege $dom->getElementsByTagName('eintraege');
        
        
    // in der zeile hier drunter soll der fehler liegen :(
        
    $eintrag $eintraege->appendChild($dom->createElement('eintrag'));
        
    $eintrag->setAttribute('id'$id);
        
    $eintrag->setAttribute('datum'date('d.m.Y'));
        
    $eintrag->setAttribute('uhrzeit'date('H:i:s'));
        
        
    // titel
        
    $titel $eintrag->appendChild($dom->createElement('titel'));
        
    $titel->appendChild($dom->createTextNode("$_POST[titel]"));
        
        
    // name
        
    $name $eintrag->appendChild($dom->createElement("name"));
        
    $name->appendChild($dom->createTextNode("$_POST[name]"));
        
        
    // text
        
    $text $eintrag->appendChild($dom->createElement('text'));
        
    $text->appendChild($dom->createTextNode("$_POST[nachricht]"));
        
        
    $dom->save('data/text.xml'); 
    meine xml schaut so aus:
    <?xml version="1.0"?>
    <root>
    <config>
    <id>1</id>
    </config>
    <eintraege>
    </eintraege>
    </root>


    und die fehlermeldung die kommt.

    Fatal error: Call to undefined method DOMNodeList::appendChild()

    wieso hat das element die methode nicht? wo ist mein fehler?

    achja nutze PHP Version 5.2.6, aber das sieht man glaub ich auch an den funktionen...

    grüße
    marvin

  • #2
    Guck mal genau auf die Fehlermeldung
    Code:
    [B]DOMNodeList[/B]::appendChild()
    Mit getElementsByTagName holst du dir erst eine Liste aller Elemente mit dem Namen 'eintraege'.

    Wenn du jetzt ein Element einhängen willst, musst du erst mal ein Element aus der Liste wählen - es könnten ja mehrere Elemente mit dem Namen 'eintraeage' gefunden werden.

    Code:
    $eintrag = $eintraege[B]->item(0)[/B]->appendChild($dom->createElement('eintrag'));
    Mit $eintraege->item(0) adressierst du das erste Element aus deiner Liste - wenn du dir sicher sein kannst, dass kein weiteres Element 'eintraege' existiert, kannst du das so machen wie von mir vorgeschlagen.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      ui Danke sehr!! das hilft mir nun echt auf die sprünge... war schon ganz wirr...

      eine frage hab ich aber noch, wie man sieht hab ich in der xml noch ein element id, mit welcher funktion ersetzt man den inhalt des elements am besten?

      Kommentar


      • #4
        PHP-Code:
        $idElement->firstChild->nodeValue=123

        Kommentar


        • #5
          Danke an Euch beiden, ging ja echt flott

          Kommentar

          Lädt...
          X