JAVA三种解析方式解析XML

JAVA中存在三种方式解析XML。例中代码未进行异常捕捉。
1.DOM方式
使用DocumentBuilderFactory、DocumentBuilder进行解析。
例:
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(new File(String filePath));
Node root = document.getDocumentElement();

除了使用DOM直接进行元素解析外,可以使用XPath进行解析。
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
System.out.println(xpath.evaluate(String xPath, document));

2.SAX,基于事件进行xml解析,与DOM方式不同之处在于SAX不必将整个文档读入内存之后再进行解析,而是通过读入文档时,判断事件是否在自定义的事件处理器中是否触发而决定的。
使用SAXParserFactory、SAXParser及继承已经默认实现各个事件接口的DefaultHandler进行XML文档解析。
SAXParserFactory saxFactory = SAXParserFactory.newInstance();
SAXParser saxParser = saxFactory.newSAXParser();
InputStream in = ....;//XML文档输入流
DefaultHandler handler =.......;//事件处理器
saxParser.parse(in, handler);

3.StAX。采用拉的方式进行XML解析。使用XMLInputFactory及XMLStreamReader进行解析
InputStream in = ....;//XML文档输入流
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(in);
while(xmlStreamReader.hasNext()){
    int event = xmlStreamReader.next();//触发的事件类型
    根据事件类型进行处理;
}

你可能感兴趣的:(java,xml)