http://www.perlmonks.org?node_id=938632

elgato has asked for the wisdom of the Perl Monks concerning the following question:

Hi. It there any good way to get number of found nodes on xpath query? Smth like this:
my $doc = $parser->parse_file($file); print length(@{$doc->findnodes('//category')})
I just need nodes count without making foreach counter (have many rows). Thanks in advance.

Replies are listed 'Best First'.
Re: XML::LibXML count nodes
by choroba (Cardinal) on Nov 18, 2011 at 08:44 UTC
    Use XPath function count:
    my $count = $doc->findvalue("count(//category)");
Re: XML::LibXML count nodes
by Anonymous Monk on Nov 17, 2011 at 15:27 UTC
      Seems like what i've needed! Thanks! PS: LibXML docs suck =\
Re: XML::LibXML count nodes
by Lotus1 (Vicar) on Nov 17, 2011 at 19:10 UTC

    Try this:

    print scalar(@{$doc->findnodes('//category')});

    I've done it by assigning the nodes to an array and then just printing the number of elements in the array.