1. DOM(Document Object Model)
此 方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点 。 因此非常消耗系统性能 ,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在 Java 语言中的应用不方便,并且可读性不强。
实例:
- importjavax.xml.parsers.*;
- //XML解析器接口
- importorg.w3c.dom.*;
- //XML的DOM实现
- importorg.apache.crimson.tree.XmlDocument;
- //写XML文件要用到
- DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
- //允许名字空间
- factory.setNamespaceAware(true);
- //允许验证
- factory.setValidating(//获得DocumentBuilder的一个实例
- try{
- DocumentBuilderbuilder=factory.newDocumentBuilder();
- }catch(ParserConfigurationExceptionpce){
- System.err.println(pce);
- //出异常时输出异常信息,然后退出,下同
- System.exit(1);
- }
- //解析文档,并获得一个Document实例。
- Documentdoc=builder.parse(fileURI);
- catch(DOMExceptiondom){
- System.err.println(dom.getMessage());
- catch(IOExceptionioe){
- System.err.println(ioe);
- //获得根节点StuInfo
- ElementelmtStuInfo=doc.getDocumentElement();
- //得到所有student节点
- NodeListnlStudent=elmtStuInfo.getElementsByTagNameNS(
- strNamespace,"student");
- for(……){
- //当前student节点元素
- ElementelmtStudent=(Element)nlStudent.item(i);
- NodeListnlCurrent=elmtStudent.getElementsByTagNameNS(
- "name");
- }
对于读取得方法其实是很简单的,写入xml文件也是一样不复杂。
3.JDOM
JDOM的处理方式有些类似于DOM,但它主要是用SAX实现的 。JDOM用Java的数据类型来定义操作数据树的各个节点 。JDOM的性能也很优越。
Java代码