Perl - 将xml存储为变量中的字符串

Bal*_*nan -1 xml perl

我在google上做了很多搜索,但是如果XML包含在字符串中,有没有办法解析并获取类似于从文件中提取值的值.

以下是示例脚本:

use strict;
use warnings;
use XML::LibXML;

my $xml  = "<family><id>25502</id><father><id>1</id></father><mother><id>2</id></mother><son><id>2</id></son></family>";

my $id = $xml->getElementsByTagName("id")->item(0)->getFirstChild->getData;

print $id;
Run Code Online (Sandbox Code Playgroud)

在此示例中,我无法打印ID.请帮忙.谢谢.

Dav*_*oss 8

您似乎误解了对象和XML解析的工作原理.您不能只使用模块并突然期望它对程序中的所有变量产生影响.

如果您阅读XML :: LibXML :: Parser的文档,它将向您展示如何将XML字符串解析为文档对象,然后您可以使用各种方法进行查询.

你会想要这样的代码:

use strict;
use warnings;
use XML::LibXML;

my $xml = '<family> ... </family>';

my $xml_parser = XML::LibXML->new;

my $doc = $xml_parser->parse_string($xml);
Run Code Online (Sandbox Code Playgroud)

您现在有一个XML文档变量(in $doc),您可以在其上调用XML :: LibXML方法.