in reply to Re: XML::twig counting elements that don't have a certain attribute/value on them
in thread XML::twig counting elements that don't have a certain attribute/value on them

$qp->children( 'q[@supp != "yes"]') worked great, thanks. I have just been told that as well as suppressed quotations the count should ignore information quotes, which are indicated by an attribute info="yes" on the <q> tag. How do you combine two conditions? Would $qp->children( 'q[@supp != "yes"][@info != "yes"]') work or is it done some other way?

Replies are listed 'Best First'.
Re^3: XML::twig counting elements that don't have a certain attribute/value on them
by mirod (Canon) on Feb 12, 2010 at 05:20 UTC

    No, only one predicate is accepted at the moment, so you would have to write: $qp->children( 'q[@supp != "yes" and @info != "yes"]').

      Thanks for this help. I have used that code and it seems to work but the specs have changed again (grrr users). I now need to exclude q tags with up to four different attribute values on them. So I tried:

      'q[@supp != "yes" and @info != "yes" and @info != "info" and @implied != "yes"]'

      but when I run the script with this in it I get an error message:

      XML error:wrong condition 'q[@supp != "yes" and @info != "yes" and @info != "info" and @implied != "yes"]' at lib//handlers.pm line 1824

      If I remove any two of the conditions the script runs again. Is there a limit to the number of conditions you can combine or have I made some stupid mistake?

      The last option is entriely possible