Използвам XML::LibXML
и просто трябва да получа брой на възлите, посочени от XPath изразяване.
Използването на някой от първите два кодови реда по-долу дава това, което търся. Мога да използвам функцията count
XPath с findvalue
или find
, но не и findnodes
(да, знам, защото връща списък).
my $node_cnt = $dom->findvalue("count($xpath_str)"); # WORKS!
my $node_cnt = $dom->find("count($xpath_str)"); # WORKS!
my @node_cnt = $dom->findnodes("count($xpath_str)"); # count doesn't work!
Което ме навежда на един общ неприятен въпрос: Каква е разликата между трите find
типа? В документацията пише:
$string = $node->findvalue($xpath)
$result = $node->find($xpath)
@nodes = $node->findnodes($xpath_expression)
Има ли наистина разлика между аргумента
$xpath_expression
срещу само$xpath
в документацията?За двете връщащи скалар, каква е разликата?
Опитвам се да разбера значението на използването на един тип намиране пред друг - благодаря!