Java解析XML方式一般有两种,利用SAX解析和利用DOM解析,DOM解析是把整个XML文件当做一个树来存取,如果XML文件较大,那么用DOM解析的效率较低。
SAX解析是逐个tag解析xml,如果XML层次过深用SAX解析不是很方便,XML文件层次过深适用于DOM解析,jdk中提供了用SAX解析XML的工具
用SAX解析xml步骤:
1、创建一个SAXParserFactory
SAXParserFactoryfactory=SAXParserFactory.newInstance();
XMLReaderreader=factory.newSAXParser().getXMLReader();
2、为XMLReader设置内容处理器
reader.setContentHandler(newMyContentHandler());
3、开始解析文件
reader.parse(newInputSource(newStringReader(resultStr)));
resultStr为读取xml文件到一个String对象
4、在解析xml的类需要做的事:
1)继承DefaultHandler类
publicclassMyContentHandlerextendsDefaultHandler
2)重载下列方法
startDocument()//开始解析XML时调用,仅仅调用一次
startElement()//解析tag时调用
characters()//解析tag中的属性
endElement()//tag解析完成后调用
endDocument()//结束解析XML时调用,仅仅调用一次