4

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

4

2 回答 2

4

在表达式末尾使用星号:

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

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

于 2011-10-06T09:11:47.353 回答
2

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

my @c = $_->findvalue('./a/');
于 2011-10-06T11:28:34.810 回答