Posted By: jetpac () on 'CZprogram'
Title: XML::DOM problem
Date: Wed Jan 19 17:51:20 2005
uvazujme tento xml soubor:
---
<seznam>
<kniha name="Hloupa Knizka">
<author>Pepa Novak</author>
</kniha>
</seznam>
---
a potom tehle usek kodu:
----
#!/usr/bin/perl
use strict;
use warnings;
use XML::DOM;
my $file = "test.xml";
my $parser = XML::DOM::Parser->new;
my $doc = $parser->parsefile($file);
my $nodelist = $doc->getElementsByTagName("kniha");
my $firstbook = $nodelist->item(0);
my $firstbook_author_node = $firstbook->getFirstChild;
printf ("Book name:t%sn" , $firstbook->getAttribute("name"));
printf ("Book author:t%sn",
$firstbook_author_node->getFirstChild->getNodeValue);
$doc->dispose;
----
Tehle usek kodu nevypise autora. Pokud v perlovem kodu radek
my $firstbook_author_node = $firstbook->getFirstChild;
zamenim za:
my $firstbook_author_node =
$firstbook->getElementsByTagName("author")->item(0);
tak to Pepu Novaka vypise spravne. Perl 5.8.0.
Podle me jsou ty dva radky z hlediska meho chapani DOM logiky ekvivalentni.
Perl si to nemysli - je chyba v perlu a nebo neco chapu spatne ja?
Diky za jakoukoliv odpoved k veci.
Jet.