in reply to HTML and Xpath

There is no need for 2 loops, you can select the elements you want with just a single XPath expression. The code should look like this:

for my $result ($tree->findnodes(q{/html/body/div/div[@class="here"]}) +) { print $result->as_text; print "\n<br>".("-" x 120)."<br>\n"; }

Instead of as_text you may want to use as_HTML, or, if you want the inner HTML of the element (the HTML without the enclosing tag), something like print map { ref $_ ? $_->as_HTML : $_ } $result->content_list;

Replies are listed 'Best First'.
Re^2: HTML and Xpath
by way (Sexton) on Nov 06, 2008 at 16:05 UTC

    Yes, i understand, but, for doesn't make a complicated example, I have left out some details, so it would not apply a single XPath expression, anyway, thank you very much, all the comments are always helpful.

      OK, so what you are looking for is findnodes_as_strings, which indeed doesn't look like it is documented. I have to fix that. It returns a list of strings, one per node returned by the query. Thanks.

      update: duh! that method exists (and is documented) only in the development version of the module, I am uploading it to PAUSE right away, sorry for the inconvenience.