I m przy użyciu kodu poniżej, aby uzyskać wartość węzła z pliku XML:Get wartości węzła przy użyciu modułu XML :: XPath w Perlu
use XML::XPath;
use XML::XPath::XMLParser;
my $pt1 = XML::XPath->new(filename => 'test1.xml');
my $nodeset = $pt1->find('/file1/table/tname');
foreach my $node ($nodeset->get_nodelist)
{
print $node->getNodeValue."\n";
}
Zawartość „test1.xml” jest jak poniżej:
<file1>
<table>
<tname>_sys_ident</tname>
<ttype>regular</ttype>
<col>
<name>_sys_ident_asp</name>
<type>varchar(16)</type>
<fkey>_sys_asp</fkey>
<attr>PRIMARY KEY</attr>
</col>
</table>
</file1>
Chcę drukować wartość tname (tj _sys_ident). Ale powyższy kod nie drukuje niczego.
Jeśli używam następujący wewnątrz pętli for:
print XML::XPath::XMLParser::as_string($node);
wtedy, daje następujące dane wyjściowe:
<tname>_sys_ident_asp</tname>
Nie chcę tego pełną nazwę węzła i wartość ciągu. Po prostu chcę wartość węzła. Po raz pierwszy próbuję XML i XPath. Proszę powiedz mi, co robię źle.
Dzięki. Doskonała odpowiedź. – AnonGeek
Co robi '$ nodeset-> get_nodelist'? – alex
@alex, [przeczytaj dokumentację] (https://metacpan.org/pod/XML::XPath::NodeSet#get_nodelist()) – cjm