Я использую приведенный ниже код для получения значения узла из XML-файла:
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";
}
Содержимое 'test1.xml' выглядит следующим образом: ниже:
<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>
я хочу напечатать значение tname(т.е._sys_ident). Но приведенный выше код ничего не печатает.
Если я использую следующий внутри цикла for :
print XML::XPath::XMLParser::as_string($node);
, то он дает следующий вывод:
<tname>_sys_ident_asp</tname>
Мне не нужно это полное имя узла и строка значения. Мне просто нужно значение узла. Я впервые пробую XML и XPath. Пожалуйста, скажите мне, что я делаю неправильно.