SAX and DOM works together
The parser uses SAXParser to seek through your file.xml, and uses your handlers to process DOM nodes
import org.j.xmlparser.Parser;
import org.w3c.dom.Element;
// ...
Parser parser = new Parser();
parser.addHandler("tag", (Element element) -> {
// do whatever you want
});
parser.parse("path/to/file.xml");
sharing context:
import org.j.xmlparser.Parser;
import org.j.xmlparser.annotations.Handles;
import org.w3c.dom.Element;
// ...
public class TagsHandler {
@Handles("tag1")
public void handleTag1(Element element) {
//...
}
@Handles("tag2")
public void handleTag2(Element element) {
//...
}
}
// ...
Parser parser = new Parser();
parser.addHandler(new TagsHandler());
parser.parse("path/to/file.xml");
concurrent execution:
import org.j.xmlparser.Parser;
// ...
Parser parser = new Parser();
// add handlers
parser.parseFixedThreadPool("path/to/file.xml", nThreads);
// or
parser.parseCachedThreadPool("path/to/file.xml");
// or
parser.setExecutor(new ThreadPoolExecutor(...));
parser.parse("path/to/file.xml");
// or as alternative
parser.parse("path/to/file.xml", new ThreadPoolExecutor(...));