Java library using css selectors to parse XML

Since there are some bugs in other Libraries like Jsoup and Jericho is different from what I was expecting,

I wrote a Class Extending the org.xml.sax.helpers.DefaultHandler which parse the XML. I then wrote two other Classes that look like Element and Elements from Jsoup containing two functions called find that handle the CSS3 Selector and attr that returns the attribute value.

I'm now cleaning and commenting that code... I'll post the library later for who is interested in.

xmlDoc.find("bloc[type=Pro]>act").attr("label");

is now possible like in jQuery !


Edit !

Here is the link to access the code for who is interested : Google Code Project


Moving to GitHub : https://github.com/ChristopheCVB/JavaXMLQuery


Apache Jericho is what you are looking for.

You example would look like

String desc = source.getFirstElement( "type", "pro" ).getAttributeValue( "description" );

It's a charm to parse HTML with jericho, so I guess it's even easier for well structured XML.


While initially designed as a HTML parser with CSS selector support, Jsoup works fine for XML documents as well if your sole intent is to extract data, not to manipulate data.

Document document = Jsoup.parse(xmlString);
String desc = document.select("bloc[type=pro]").get(0).attr("description");
// ...

You see, the syntax is almost identical to what you have had in the question.