XML::Dom
daywalker
- perl
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
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');
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