xml :: Twig和findnodes

时间:2011-10-06 08:48:46

标签: perl xpath xml-twig

我有以下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个数组元素,而不是一个?

2 个答案:

答案 0 :(得分:3)

使用表达式末尾的星号:

$_->findnodes( './a/*');

' * '匹配任何标记,因此您获得3个子节点 - 您当前的示例仅匹配'a',其文本是嵌套元素文本的串联。

答案 1 :(得分:1)

在XML :: Twig 3.39(及更高版本)中,您可以使用findvalue来获取字符串数组。

my @c = $_->findvalue('./a/');