XML parsing is now sexy!
A simple, high performance, typed XML parser based upon Android sax parser but written in pure Java. SEXP gives callbacks for all parsing events and being written in pure java allows faster and more comprehensive testability.
Moreover SEXP is a pull-parsing XML deserialiser which affects both performance (no reflection is required) and low memory footprint (unncessary objects are not allocated). Our testing shows that SEXP performs:
You can refer to the following micro-benchmarking for further information.
To start using this library, add these lines to the build.gradle
of your project:
repositories {
jcenter()
}
dependencies {
compile 'com.novoda:sexp:1.0.8'
}
String XML =
"<novoda>" +
"<favouriteColour>Blue</favouriteColour>" +
"</novoda>";
ElementFinderFactory factory = SimpleEasyXmlParser.getElementFinderFactory();
elementFinder = factory.getStringFinder();
Streamer<String> streamer = new SimpleStreamer(elementFinder);
String favouriteColour = SimpleEasyXmlParser.parse(XML, streamer);
private static class SimpleStreamer implements Streamer<String> {
private final ElementFinder<String> elementFinder;
private final String elementTag;
public SimpleStreamer(ElementFinder<String> elementFinder, String elementTag) {
this.elementFinder = elementFinder;
this.elementTag = elementTag;
}
@Override
public RootTag getRootTag() {
return RootTag.create("novoda");
}
@Override
public void stream(RootElement rootElement) {
elementFinder.find(rootElement, elementTag);
}
@Override
public String getStreamResult() {
return elementFinder.getResultOrThrow();
}
}
(See the demo
and demoAndroid
modules for more.)
Here are a list of useful links:
support-sexp
when posting a new question