Java中XML的處理方式有兩種:DOM和SAX。
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class DOMParser { public static void main(String[] args) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("example.xml"); Element root = document.getDocumentElement(); NodeList nodeList = root.getElementsByTagName("element"); for(int i=0; iDOM是一種將整個XML文檔加載進(jìn)內(nèi)存中的處理方式,通過訪問節(jié)點的方式來訪問XML文檔的內(nèi)容。DOM在處理小型XML文件時速度較快,但會占用大量內(nèi)存。
import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.helpers.DefaultHandler; public class SAXParser { public static void main(String[] args) { try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); DefaultHandler handler = new DefaultHandler() { boolean attribute = false; public void startElement(String uri, String localName, String qName, Attributes attributes) { if(qName.equalsIgnoreCase("element")) { attribute = true; System.out.println(attributes.getValue("attribute")); } } }; saxParser.parse("example.xml", handler); } catch(Exception e) { e.printStackTrace(); } } }SAX是一種邊讀取XML文檔邊處理XML內(nèi)容的方式,不需要將整個XML文檔加載進(jìn)內(nèi)存,適合處理大型XML文件。SAX通過事件驅(qū)動的方式讀取XML文檔,速度相對DOM較慢,但會更節(jié)省內(nèi)存。