2014-10-29 48 views
2

我有一個XML,我想要獲取XML中節點集的大小。使用XML :: XPath獲取節點集大小

XML

<a> 
    <b> 
    <c>data</c> 
    <c>data</c> 
    <c>data</c> 
    </b> 
</a> 

我想要得到的數Çb標籤。

my $obj = XML::XPath->new(xml => $xml); 
print size(($obj->find('/a/b')); 

我不能夠得到C的數量在這個XML

+1

注意,XML :: XPath是不完整的,完全過時。試試XML :: LibXML。 – nwellnhof 2014-10-29 12:11:25

回答

3

size是一種方法,而不是一個函數。此外,您的XPath表達式與b節點相匹配,而不是其子節點。

以下工作:

my $cs = $obj->find('/a/b/c'); 
print $cs->size, "\n"; 

或者更短,而中間變量:

print $obj->find('/a/b/c')->size, "\n";