我有这个Perl文件,我试图从xml字符串中打印某个元素,如果它有属性的话tag = "915".问题是,它不是打印出整个元素,而是打印出来915.这是文件:
print(get_marc_datafield("<datafield tag=\"915\">RandomStuff</datafield>"), "915");
sub get_marc_datafield {
my $xml = shift;
my $value = shift;
my $datafield = "";
if($xml =~ m/.*(<datafield tag="$value".*<\/datafield>).*/) {
$datafield = $1;
}
return $datafield;
}
Run Code Online (Sandbox Code Playgroud)
这应该打印出来 <datafield tag="915">RandomStuff</datafield>
但相反它打印出来915.
知道我做错了什么吗?我是否正在实施群组捕获?
括号混乱.你只向函数传递了一个参数,并打印了2个东西.第二个是文字915.将两个参数传递给函数,并只打印一件事:
print get_marc_datafield("<datafield tag=\"915\">RandomStuff</datafield>", "915");
Run Code Online (Sandbox Code Playgroud)