一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java解析xml常用的幾種方式總結

java解析xml常用的幾種方式總結

2019-10-22 11:29java之家 Java教程

這篇文章主要介紹了java解析xml常用的幾種方式總結,有需要的朋友可以參考一下

各種方法都用過。現在總結一下。 經常記不住,要找資料。現在總結一下。

xml 文件如下:

 

復制代碼代碼如下:


<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
  <aa>
   <bb>
    <cc>ccccc</cc>
   </bb>
  </aa>
</book>

 

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

 

 

復制代碼代碼如下:


package sort;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
public class D2 {
 /**
  * 直接使用DOM解析
  * @param args
  * @throws Exception
  */
 public static void main(String[] args) throws Exception{

  DocumentBuilder sb =  DocumentBuilderFactory.newInstance().newDocumentBuilder();

  Document root = sb.parse(D2.class.getClassLoader().getResourceAsStream("NewFile.xml"));

  System.out.println(root.getChildNodes().item(0).getNodeName());

 }
}

 

 

 

 

復制代碼代碼如下:


package sort;

 

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl;

public class D {

 /**
  * 使用SAX解析
  * @param args
  * @throws Exception
  */
 public static void main(String[] args) throws Exception {

  SAXParserFactory factory = SAXParserFactoryImpl.newInstance();
  SAXParser parser = factory.newSAXParser() ;
  parser.parse(D.class.getClassLoader().getResourceAsStream("NewFile.xml"), 
    new DefaultHandler(){

     @Override
     public void characters(char[] ch, int start, int length)
       throws SAXException {
      System.out.println("characters");
     }

     @Override
     public void endDocument() throws SAXException {
      // TODO Auto-generated method stub
      System.out.println("endDocument");
     }

     @Override
     public void endElement(String uri, String localName,
       String qName) throws SAXException {
      // TODO Auto-generated method stub
      System.out.println("endElement");
     }

     @Override
     public void startDocument() throws SAXException {
      // TODO Auto-generated method stub
      System.out.println("startDocument");
     }

     @Override
     public void startElement(String uri, String localName,
       String qName, Attributes attributes)
       throws SAXException {
      // TODO Auto-generated method stub
      System.out.println("startElement");
     }

  }) ;

  
 }

}

 

 

 

復制代碼代碼如下:


package sort;

 

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;

public class D3 {

 /**
  * 使用XMLStream解析
  * @param args
  * @throws Exception
  */
 public static void main(String[] args) throws Exception {

  XMLInputFactory xmlFactor = XMLInputFactory.newFactory();

  XMLStreamReader reader = 
   xmlFactor.createXMLStreamReader(D3.class.getClassLoader().getResourceAsStream("NewFile.xml"));
  while(reader.hasNext()){
   int point = reader.next() ;
   switch(point){
   case XMLStreamReader.START_ELEMENT :
    System.out.println("start_element");
   case XMLStreamReader.END_ELEMENT :
    // do something...
   }

  }

 }

}

 

 

 

復制代碼代碼如下:


package sort;

 

import org.dom4j.Document;
import org.dom4j.io.SAXReader;

/**
 * 使用DOM4j XPATH解析XML (需要加入依賴jar文件)
 * @author zhoufeng
 *
 */
public class D4 {

 public static void main(String[] args) throws Exception{

  SAXReader reader = new SAXReader() ;

  Document root = reader.read(D4.class.getClassLoader().getResourceAsStream("NewFile.xml"));

  /* 選擇所有的cc節點 */
  System.out.println(root.selectNodes("//cc").size());;

  /*選擇所有的book節點,并且有子節點author的*/
  System.out.println((root.selectNodes("//book[author]").size()));;

  /* 選擇所有book節點,并且有屬性category的   */
  System.out.println((root.selectNodes("//book[@category]").size()));;

  /* 選擇所有book節點,并且有子節點author值為James McGovern ,并且還有category屬性節點值為WEB   下面的price節點*/
  System.out.println(root.selectNodes("//book[author='James McGovern'][@category='WEB']/price").size());;

 }

}

 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品中文闷骚内射 | 色综色天天综合网 | 国产色网址 | 九九精品视频一区二区三区 | 亚洲成年www | 亚洲成年人免费网站 | 短篇小说肉 | 久久久久青草大香线综合精品 | 色天使亚洲综合在线观看 | 成人快插 | 日本福利网 | 四大美女思春艳史片 | 欧美同志gaypronvideos | www日本高清视频 | 国产一卡二卡3卡4卡更新 | 摄像头东北对白清晰 | 欧美三级不卡视频 | 国产精品日本一区二区不卡视频 | 黄色wwwwww| 天堂伊人网 | 99久久久久久久 | 男女全黄h全肉细节文 | 韩国成人毛片aaa黄 含羞草国产亚洲精品岁国产精品 | 91精品啪在线观看国产线免费 | 3d动漫美女被吸乳羞羞有 | 国外欧美一区另类中文字幕 | 国产高清一区二区三区免费视频 | 日本搜子同屋的日子2国语 日本爽p大片免费观看 | 日韩在线一区二区三区免费视频 | 精品日本一区二区 | 国产精品原创视频 | 国产成人精品免费午夜 | 日韩精品一区二区三区中文字幕 | 精品视频在线观看免费 | 日韩一区二区三区在线 | 91久久精品青青草原伊人 | www.久久精品视频 | 日本精品一区二区在线播放 | 男人的天堂在线观看免费 | 四虎影视e456fcom四虎影视 | 日本一道高清不卡免费 |