Tôi đang sử dụng mã dưới đây để nhận được giá trị của nút từ một tập tin XML:Nhận giá trị nút sử dụng mô-đun XML :: XPath trong 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";
}
Nội dung của 'test1.xml' như sau:
<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>
tôi muốn in giá trị của tname (tức _sys_ident). Nhưng mã trên không in bất cứ thứ gì.
Nếu tôi sử dụng bên trong vòng lặp for sau:
print XML::XPath::XMLParser::as_string($node);
sau đó, nó mang lại cho sau đầu ra:
<tname>_sys_ident_asp</tname>
Tôi không muốn tên này nút hoàn chỉnh và chuỗi giá trị. Tôi chỉ muốn giá trị nút. Đây là lần đầu tiên tôi thử XML và XPath. Xin vui lòng cho tôi biết những gì tôi đang làm sai.
Cảm ơn. Câu trả lời hoàn hảo. – AnonGeek
'$ nodeset-> get_nodelist' làm gì? – alex
@alex, [đọc tài liệu] (https://metacpan.org/pod/XML::XPath::NodeSet#get_nodelist()) – cjm