初学xml文件的解析方式,由四种:DOM,JDOM,DOM4J,SAX。
其中DOM和SAX这两种解析方式是与平台无关的官方解析方式。
DOM解析方式形成树形结构,容易对内容进行修改。
DOM解析方式的步骤:
1、创建一个DocumentBuilderFactory的对象,使用newInstance方法。
2、创建一个DocumentBuilder对象,通过DocumentBuilder的对象的parse[]方法加载xml文件到当前项目下,如:
DocumentBuilder db=dbf.newDocumentBuilder();
Document document=db.parse(uri);
3、获取xml文件节点的集合。
NodeList booklist = document.getElementsByTagName(节点名称);
4、遍历每一个节点
用foreach方法进行遍历
5、解析节点的子节点
NodeList childnode=book.getChildNodes();可用childnode.item(k).getNodeType()==Node.ELEMENT_NODE这个方法进行判断以区分text类型的node以及element类型的node。
SAX适用于只需要处理xml文件中的数据,是基于事件的驱动。
SAX解析方式的步骤:
1、创建一个SAXParserFactory对象。
SAXParserFactory factory = SAXParserFactory.newInstance();
2、创建一个SAXParser对象
SAXParser parser = factory.newSAXParser();
通过parse方法加载xml文件。
parser.parse(xml文件名, handler);此时与DOM的区别是这里需要一个handler。此时需要创建一个handler类。
3、handler类需要继承 DefaultHandler。
其中在xml声明时触发startDocument()方法。在遇到开始标签时会触发startElement()方法。
解析节点元素时可用startElement()方法中地attributes.getQName(i)和attributes.getValue(i)来获得属性名和属性中。
可在endElement()方法中的set方法将xml的内容和结构存入Java对象中。