xpathlibxml2libxml-js

Prefix the result of a XPATH query


I use libxmljs to parse some html.

I have a xpath query which has an "or" conjunction to retrieve basically the information of two queries

Example

doc.find("//div[contains(@class,'important') or contains(@class,'overdue')]")

this returns all the divs with either important or overdue...

Can I prefix or see within my result set which comes from which condition?

The result could be an array with an index for the match 0 for the first condition and 1 for the 2... Is this possible...

Or how can I find out which result comes from which query condition...

Thanks for any help...

P.S.: this is a simplified exampled of a sequence of elements which either have an important or an overdue item ... both, one or none of them... So I cannot go by looking for every second entry ... etc

This is the result I want to get...

message:{},
message:{
   .....
  important: "some immportant text",
  overdue: "overdue date,
  .....
}

Solution

  • There is no way to know which clause of an or XPath query caused a particular result to be included. It's simply not information that's kept around.

    You'll either need to do entirely separate queries for important and overdue, or do one large query to get the entire result set (as you are now) and then further test each result's class to find out which one it is.