Tutorial :Is this a valid XPath expression?



Question:

Is this xpath a valid XPath expression? (It does what it should ).

#!/usr/bin/env perl  use strict; use warnings; use 5.012;  use XML::LibXML;    my $string =<<EOS;  <result>      <cd>      <artists>          <artist class="1">Pumkinsingers</artist>          <artist class="2">Max and Moritz</artist>      </artists>      <title>Hello, Hello</title>      </cd>      <cd>      <artists>          <artist class="3">Green Trees</artist>          <artist class="4">The Leons</artist>      </artists>      <title>The Shield</title>      </cd>  </result>  EOS  #/  my $parser = XML::LibXML->new();  my $doc = $parser->load_xml( string => $string );  my $root = $doc->documentElement;    my $xpath = '/result/cd[artists[artist[@class="2"]]]/title';    my @nodes = $root->findnodes( $xpath );  for my $node ( @nodes ) {      say $node->textContent;  }  


Solution:1

Yep. That's a valid XPath expression.

It could be a little simplier if you wrote it as:

/result/cd[artists/artist[@class="2"]]/title  


Solution:2

Yes, you can use any expression inside a predicate, which means you can nest them.

References


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »