总要有人来改变世界的,为什么不能是你呢

java解析XML文件四种方法之引入源文件

1.DOM解析(官方)

   try {

         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder               db = dbf.newDocumentBuilder();
         Document                document = db.parse("file");
         NodeList                              list = document.getElementsByTagName("ndoe");//常规的DOM操作
   } catch (Exception e) {
         e.printStackTrace();
   }

   parse()方法加载XML文件到当前程序。

   将XML文件全部加载到内存中,然后逐个解析。

2.SAX解析(官方)

   try {

         SAXParserFactory factory = SAXParserFactory.newInstance();
         SAXParser               parser = factory.newSAXParser();
         parser.parse("file",handler);
   }catch (Exception e) {
        e.printStackTrace();
   }

   参数handler是一个继承了DefaultHandler类的子类的实例化对象。

   这个子类中解析文档、元素的方法如下:

   --------startDocument()                                      //解析XML文件开始

   -----------------------startElement()                       //开始解析某个元素

   -----------------------endElement()                        //结束解析该元素(通常将解析获得的信息存到一个对象)

   -----------------------startElement()                       //开始解析另一个个元素

   -----------------------endElement()                        //结束解析元素

   ---------endDocument()                                      //解析XML文件结束

   SAX解析XML文件的方法是从头到尾一步一步地解析文档的节点元素,是一种事件驱动模式,对内存耗费

   较小。

3.JDOM解析(非官方,DOM的拓展)

   需要事先导入一个JDOM的jar包到项目。后面导入的类也是JDOM包下的的类

   try {

          SAXBuilder saxbuilder = new SAXBuilder();
          Document    document = saxbuilder.build("file");
          Element    rootElement = document.getRootElement(); //获得XML文件的根节点
   }catch (Exception e) {
          e.printStackTrace();
   }

   获得根节点之后,通过getChildren()方法获得其子节点的List集合。

4.DOM4J解析(非官方,DOM的拓展,现在比较流行的)

   同理,由于是非官方的,我们依然需要引入一个DOM4J的jar包

   try {

         SAXReader    reader = new SAXReader();
         Document document = reader.read("file");
         Element rootElement = document.getRootElement();//获得XML文件的根节点
   }catch (Exception e) {
         e.printStackTrace();
   }

   性能优异,灵活性好,功能强大,易使用,所以现在比较流行使用DOM4J解析XML。

注意:以上所有引入文件方法的参数"file",可以是文件路径字符串,可以是一个文件对象,也可以是

           一个文件输入流对象。

 

posted @ 2017-10-30 23:47  桔子桑  阅读(1965)  评论(0编辑  收藏  举报