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


in reply to Re: Help with xpath and TreeBuilder
in thread Help with xpath and TreeBuilder

Its even easier :)

my @xpaths = qw{ /html/body/p/a /html/body/p[2]/a /html/body/p[3]/a .... /html/body/p[66]/a }; my $allXpaths = join ' | ', @xpaths; my @values = $tree->findvalues;

I don't know about other xpath interpreters, but treebuilder::xpath (and xsh ) allows this

This query is probably faster

/html/body/p[ position()=1 or position()=2 or position()=3 or position()=66 ]/a

Or this one

/html/body/p[ ( ( position() > 0 and position() < 4 ) or ( position()=66 ) ) ]/a

Though this one won't work with your html  //a[ position()=4] because each //a is at  //a[ position() = 1] because each //a is the only (first) child of its parent ( p ) --- I guess now I know how position() works