daywalker: XML::Dom

Moin,
das Auslesen von xml mit XML::DOM (1.44) via

use XML::DOM;
$parser=new XML::DOM::Parser;
$doc=$parser->parsefile("test.xml");
$root=$doc->getDocumentElement();
$entries=$doc->getElementsByTagName("entry");

$test=$entries->item(0)->toString;
print "$test\n";

geht hier problemlos, versuche ich aber

$new=$root->createElement("entry");

kommt die Error-Msg, dass die Methode bei XML::DOM::Element nicht gefunden werden könnte. Der Fehler kommt sowohl mit dem ActiveState-Paket als auch nach Download von cpan.
Was auch sein kann, da dies laut Manpage eine Methode von  XML::DOM::Document (nicht ::Element) sein müsste. Was ist hier zu tun?
Kann das auch daran liegen, das im Verzeichnis XML/Dom keine Document.pm zu finden ist? (Und woher bekäme ich die dann?)
Solche Probs kenne ich von Perl bislang nicht...

Grüße
daywalker

  1. Es liegt hier ein Denkfehler vor. Neue DOM-Knoten werdem vom DOM erzeugt, nicht vom Wurzelelement.

    PS: XML::DOM ist überholt. Man verwendet XML::LibXML.

        use XML::LibXML qw();  
        my $parser = XML::LibXML->new;  
        my $dom = $parser->parse_file('test.xml');  
        for my $entry ($dom->findnodes('//entry')) {  
            print $entry->toString;  
        }  
      
        my $new = $dom->createElement('entry');
    
    1. Es liegt hier ein Denkfehler vor. Neue DOM-Knoten werdem vom DOM erzeugt, nicht vom Wurzelelement.

      Yep, den Fehler hatte ich zwischenzeitlich auch schon gefunden.

      PS: XML::DOM ist überholt. Man verwendet XML::LibXML.

      Nicht, wenn man eine Möglichkeit sucht, ein kleines Modul schnell nachinstalliren zu können.

      THX anyway
      daywalker