I m utilizzando il codice sottostante per ottenere il valore di nodo da un file XML:Ottenere valore del nodo utilizzando il modulo XML :: XPath in Perl
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";
}
Il contenuto di 'test1.xml' è come qui sotto:
<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>
voglio stampare il valore di TNAME (cioè _sys_ident). Ma il codice sopra non stampa nulla.
Se uso il seguente all'interno per ciclo:
print XML::XPath::XMLParser::as_string($node);
poi, dà output seguente:
<tname>_sys_ident_asp</tname>
Non voglio questo nome nodo completo e Valore stringa. Voglio solo il valore del nodo. Questa è la prima volta che cerco XML e XPath. Per favore dimmi cosa sto sbagliando.
Grazie. Risposta perfetta – AnonGeek
Cosa fa '$ nodeset-> get_nodelist'? – alex
@alex, [leggi i documenti] (https://metacpan.org/pod/XML::XPath::NodeSet#get_nodelist()) – cjm