2011-10-06 121 views
3

我有下面的XML代碼片斷:XML ::嫩枝和findnodes

<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,作爲3個數組元素而不是一個?

回答

3

在表達式的結尾使用星:

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

的「*」任何標記匹配,讓您得到3個節點 - 你目前的例子只匹配的「a」,和它的文本是嵌套元素文本的連接。

1

在XML :: Twig 3.39(及以上版本)中,您可以使用findvalue來獲取字符串數組。

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