国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|

服務器之家 - 編程語言 - JAVA教程 - java讀取XML文件的四種方法總結(必看篇)

java讀取XML文件的四種方法總結(必看篇)

2020-11-06 21:05Java之家 JAVA教程

下面小編就為大家帶來一篇java讀取XML文件的四種方法總結(必看篇)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

JAVA操作XML文檔主要有四種方式,分別是DOM、SAX、JDOM和DOM4J,DOM和SAX是官方提供的,而JDOM和DOM4J則是引用第三方庫的,其中用的最多的是DOM4J方式。運行效率和內存使用方面最優的是SAX,但是由于SAX是基于事件的方式,所以SAX無法在編寫XML的過程中對已編寫內容進行修改,但對于不用進行頻繁修改的需求,還是應該選擇使用SAX。

下面基于這四種方式來讀取XML文件。

第一,以DOM的方式實現。

java" id="highlighter_874835">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package xmls;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
/**
 * Created by lenovo on 2017-6-3.
 */
public class DOMReadDemo {
  public static void main(String[] args){
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try{
      DocumentBuilder db = dbf.newDocumentBuilder();
      Document document = db.parse("src/xmls/DOM.xml");
      NodeList booklist = document.getElementsByTagName("book");
      for(int i = 0; i < booklist.getLength(); i++){
        System.out.println("--------第" + (i+1) + "本書----------");
        Element ele = (Element) booklist.item(i);
        NodeList childNodes= ele.getChildNodes();
        for(int j = 0; j < childNodes.getLength(); j++){
          Node n = childNodes.item(j);
          if(n.getNodeName() != "#text"){
            System.out.println(n.getNodeName() + ":" + n.getTextContent());
          }
        }
        System.out.println("---------------------------------");
      }
    }catch (ParserConfigurationException e){
      e.printStackTrace();
    }catch (IOException e){
      e.printStackTrace();
    }catch (SAXException e){
      e.printStackTrace();
    }
  }
}

第二,以SAX的方式實現。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package xmls;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
/**
 * Created by lenovo on 2017-6-1.
 */
public class xmlTest2 {
  public static void main(String[] args){
    SAXParserFactory spf = SAXParserFactory.newInstance();
    try{
      SAXParser sp = spf.newSAXParser();
      SAXParserHandler handler = new SAXParserHandler();
      sp.parse("src\\xmls\\book.xml", handler);
    }catch (Exception e){
      e.printStackTrace();
    }
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package xmls;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
 * Created by lenovo on 2017-6-1.
 */
public class SAXParserHandler extends DefaultHandler {
  @Override
  public void startDocument() throws SAXException {
    super.startDocument();
    System.out.println("SAX解析開始");
  }
  @Override
  public void endDocument() throws SAXException {
    super.endDocument();
    System.out.println("SAX解析結束");
  }
  @Override
  public void startElement(String s, String s1, String s2, Attributes attributes) throws SAXException {
    super.startElement(s, s1, s2, attributes);
    System.out.println(s2);
    for(int i = 0; i < attributes.getLength(); i++){
      String name = attributes.getQName(i);
      String value = attributes.getValue(name);
      System.out.println("屬性值:" + name + "=" + value);
    }
  }
  @Override
  public void endElement(String s, String s1, String s2) throws SAXException {
    super.endElement(s, s1, s2);
    if(s2.equals("book")){
      System.out.println("-----------------------");
    }
  }
  @Override
  public void characters(char[] ch, int start, int length) throws SAXException {
    super.characters(ch, start, length);
    String value = new String(ch, start, length);
    if(value.trim().equals("")){
      return;
    }
    System.out.println(value);
  }
}

第三,以JDOM的方式實現。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package xmls;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.JDOMParseException;
import org.jdom2.input.SAXBuilder;
import java.io.*;
import java.util.List;
/**
 * Created by lenovo on 2017-6-2.
 */
public class JDOMTest {
  public static void main(String[] args){
    SAXBuilder saxBuilder = new SAXBuilder();
    InputStream in;
    try{
      in = new FileInputStream(new File("src\\xmls\\book.xml"));
      Document document = saxBuilder.build(in);
      Element rootElement = document.getRootElement();
      List<Element> bookList = rootElement.getChildren();
      for(Element book: bookList){
        System.out.println("第" + (bookList.indexOf(book)+1) + "本書!");
        List<Attribute> attrs = book.getAttributes();
        for(Attribute attr: attrs){
          System.out.println(attr.getName() + "=" + attr.getValue());
        }
        for(Element item: book.getChildren()){
          System.out.println(item.getName() + ":" + item.getValue());
        }
        System.out.println("------------------------------------");
      }
    }catch (FileNotFoundException e){
      e.printStackTrace();
    }catch (JDOMException e){
      e.printStackTrace();
    }catch (IOException e){
      e.printStackTrace();
    }
  }
}

第四,以DOM4J的方式實現。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package xmls;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
/**
 * Created by lenovo on 2017-6-2.
 */
public class DOM4JTest {
  public void parseXML(){
    SAXReader saxReader = new SAXReader();
    try{
      Document document = saxReader.read(new File("src\\xmls\\book.xml"));
      Element rootElement = document.getRootElement();
      Iterator it = rootElement.elementIterator();
      while (it.hasNext()){
        Element book = (Element)it.next();
        List<Attribute> attrs = book.attributes();
        for(Attribute attr: attrs){
          System.out.println("屬性名:" + attr.getName() + "---- 屬性值:" + attr.getValue() );
        }
        Iterator cit = book.elementIterator();
        while (cit.hasNext()){
          Element child = (Element) cit.next();
          System.out.println("子節點:" + child.getName());
        }
      }
    }catch (DocumentException e){
      e.printStackTrace();
    }
  }
  public static void main(String[] args){
    DOM4JTest dom4JTest = new DOM4JTest();
    dom4JTest.parseXML();
  }
}

以上這篇java讀取XML文件的四種方法總結(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 中国freesex| 国产欧美精品一区二区三区 | 午夜影视免费观看 | 国产毛片欧美毛片久久久 | 国产视频网 | 日韩午夜影院 | 亚洲综合在线播放 | 激情六月婷| 婷婷狠狠 | 精品久久久久久久久久久下田 | 成人亚洲一区 | 亚洲三区在线观看 | 三级av在线| 色性av| 久久国产精品一区二区 | 国产精品久久亚洲 | 亚洲欧美激情精品一区二区 | 成人亚洲一区 | 在线观看中文字幕亚洲 | 国产成人精品一区二 | 国产精品久久久久久久一区探花 | 久久久久久99 | 国产精品视频导航 | 日韩午夜 | www久 | 日韩欧美精品一区二区三区 | 国产成人一区二区 | 精品久久久久久国产 | 成人短视频在线 | 黄色片视频在线观看 | 91亚洲国产| 久草国产视频 | 精品久久久久国产 | 四房婷婷 | 久久精品视频一区 | 亚洲九九九 | 香蕉夜色 | 久久精品国产免费 | 亚洲精品久久久久久久久久久 | 一区不卡| 亚洲精品一区二区三区四区高清 |