我有以下xml代码段:
<a>
<b> textb <b>
<c> textc <c>
<d> textd <d>
<\a>
<a>
<b> textb <b>
<c> textc <c>
<d> textd <d>
<\a>
我使用xml::twig
解析它,如下所示:
my @c= map { $_->text."\n" } $_->findnodes( './a/');
并将textbtextctextd作为数组的一个元素。有找到findnodes的选项吗? textb,textc,textd 为3个数组元素,而不是一个?
答案 0 :(得分:3)
使用表达式末尾的星号:
$_->findnodes( './a/*');
' * '匹配任何标记,因此您获得3个子节点 - 您当前的示例仅匹配'a',其文本是嵌套元素文本的串联。
答案 1 :(得分:1)
在XML :: Twig 3.39(及更高版本)中,您可以使用findvalue
来获取字符串数组。
my @c = $_->findvalue('./a/');