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.

Search the boards