我开始学习 https://www.paypal.com/us/webapps/mpp/partner-program/contact-us模块 但我不明白如何读取标签和获取数据以供使用。
以下是我尝试从XML文件解析一小段内容的尝试。我要选择customfieldvalue
元素的文本内容的逗号分隔列表。
例如输出应为:
print "customfieldvalue are = $myvalues \n";
# customfieldvalue are = UNIX,PERL
阅读XML部分后,我陷入了困境,请帮助我实现这一目标。
#!/usr/bin/perl -w
use strict;
use XML::Simple;
use Data::Dumper;
my $xml = new XML::Simple;
my $cdata = join('', <DATA>);
my $data = $xml->XMLin($cdata, KeyAttr => ['id']);
print Dumper($cdata);
__DATA__
<customfield id="customfield_66440" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
<customfieldname>Program</customfieldname>
<customfieldvalues>
<customfieldvalue key="125160"><![CDATA[UNIX]]></customfieldvalue>
<customfieldvalue key="125160"><![CDATA[PERL]]></customfieldvalue>
</customfieldvalues>
</customfield>
答案 0 :(得分:4)
XML::Simple says改用XML::LibXML。
use XML::LibXML qw();
my $dom = XML::LibXML->load_xml(string => \<<'XML');
<customfield id="customfield_66440" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
<customfieldname>Program</customfieldname>
<customfieldvalues>
<customfieldvalue key="125160"><![CDATA[UNIX]]></customfieldvalue>
<customfieldvalue key="125160"><![CDATA[PERL]]></customfieldvalue>
</customfieldvalues>
</customfield>
XML
my @values = map { $_->textContent } $dom->findnodes('//customfieldvalue');
# ("UNIX", "PERL")