我写了下面的代码
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
use XML::LibXML;
use feature 'say';
my $request = "<request session=\"1\" timestamp=\"2\" crc=\"\"><get resource=\"CPX.Security.Session\"/></request>";
print $request, "\n";
my $dom1 = XML::LibXML->load_xml(string => $request);
my @titles = $dom1->getElementsByTagName("get");
foreach my $t (@titles) {
print "$t\n";
}
我期望将输出作为整个<get>
节点。我发送的请求XML是
<request session="1" timestamp="2" crc="">
<get resource="CPX.Security.Session"/>
</request>
预期输出为
<get resource="CPX.Security.Session"/></request>
我得到输出为
XML::LibXML::Element=SCALAR(0x12e287c)
任何人都可以帮助我获取所需的输出。我正在使用Perl的Dwimperl发行版。
为了提醒一下,上面的代码正在使用Perl的Strawberry发布,但是我需要在Dwimperl上完成这项工作。
答案 0 :(得分:3)
您的问题是因为您在DWIM Perl系统上安装了较旧版本的XML::LibXML
,并未以相同方式对XML::LibXML::Element
个对象进行字符串化。
您应该尝试升级XML::LibXML
模块的安装,但解决方法是更改
print "$t\n";
到
print $t->toString, "\n";