Java加载XML的方法

来源:互联网 发布:社交网络好友推荐算法 编辑:程序博客网 时间:2024/04/29 23:55

一个单独的XML文件不能做任何的工作,它需要与应用程序结合起来实现各种功能,应用程序通过XML解析器和XML应用程序接口处理XML文件。我们现在就讨论一下如何使用Java加载XML文件并访问其中的元素。
        为了简化编写处理XML的应用程序,W3C已制订出多种编程接口,其中包含的DOM和SAX(Simple API for XML)较为典型。在Java应用程序中要需要使用JAXP(Java API for XML)创建DOM或是SAX解析器来访问XML文件。

        JAXP使得用Java开发处理XML数据的应用程序非常容易,JAXP包括语法分析器、标准SAX与DOM,可么选择以事件流或是建立对象表示来解析数据。JAXP1.1版本还支持XSLT标准,可以控制数据表表示,并可以将数据转换成其他的XML文件或格式,如HTML。

        JAXP提供的类和方法,可以让Java应用程序使用DOM解析或转换XML文件。在JDK 1.4支持的JAXP API 1.1版支持XML。


 说明
 
Javax.xml.parsers 提供处理XML文件的类
Javax.xml.transform 提供处理XSLT文件的类
org.xml.sax 这是SAX解析器,提供以事件驱动方式解析XML文件的API
org.xml.saxheplers 提供解析错误处理的相关类,可以帮助程序设计者使用SAX API
org.w3c.dom 提供支持DOM建议规格的包

 


 

 

 

 

 

         在Java中想要加载XML文件,首先要引入与XML相关的类包

import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;
import java.io.*;
        在JAXP中DOM解析器称为DocumentBuilder,可以通过工厂类DocumentBuilderFactory获得,而document对象则可以通过类DocumentBuild获得,使用try catch指令建立解析错误处理。在建立 DocumentBuild对象后,可以使用其Parser方法解析加载XML文件,file对象加载后就可以处理XML文件的结点内容,程序块的架构如下

DocumentBuilderFactor dbf = DocumentBuilderFactory.newInstance();
try ...{
  DocumentBuilder db = dbf.newDocumentBuilder();
  document = db.parser(new File(args[0]));
  .....
}
catch(SAXException se) ...{
  //解析过程错误
  Exception e = se;
  if (se.getException() != null) ...{
    e = se.getException();
    e.printStackTrack();
  }
}
catch(ParserConfigurationException pe) ...{
  //解析器设置错误
  pe.printStackTrace();
}
catch(IOException ie) ...{
  //文件处理错误
  ie.printStackTrace();
}        获得document实例后,就可以对DOM的文档树进行访问了,如果要遍历DOM文档,首先要获得根结点,然后获得根结点的子结点列表。 //获取根结点
Element element = document.getDocumentElement();
//获取根结点的子结点列表
NodeList = element.getChildNodes();

原创粉丝点击