真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java如何實現(xiàn)解析并生成xml

這篇文章主要講解了Java如何實現(xiàn)解析并生成xml,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鄭州,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

XML解析:

  • * 解析xml可以做:
     
  • * 如果xml作為配置文件:讀取
  • * 如果xml作為傳輸文件:寫,讀
     

xml解析思想:

  • * DOM:將文檔加載進(jìn)內(nèi)存,形成一顆dom樹(document對象),將文檔的各個組成部分封裝為一些對象。
  • * 優(yōu)點:因為,在內(nèi)存中會形成dom樹,可以對dom樹進(jìn)行增刪改查。
  • * 缺點:dom樹非常占內(nèi)存,解析速度慢。
     

Document
Element
Text
Attribute
Comment

* SAX:逐行讀取,基于事件驅(qū)動
* 優(yōu)點:不占內(nèi)存,速度快
* 缺點:只能讀取,不能回寫

xml常用的解析器:

  • * JAXP:sun公司提供的解析。支持dom和sax。(不常用)
  • * JDOM:
  • * DOM4J:dom for java民間方式,但是是事實方式。非常好。 支持dom
     

1.導(dǎo)入jar包 dom4j.jar

2.創(chuàng)建解析器

SAXReader reader = new SAXReader();

3.解析xml 獲得document對象

Document document = reader.read(url);

  • * XPATH:專門用于查詢
  • * 定義了一種規(guī)則。
  • * 使用的方法:
  • * selectSingleNode():
  • * selectNodes():
     

使用步驟:

1、注意:要導(dǎo)包 jaxen...jar

2、創(chuàng)建解析器

SAXReader reader = new SAXReader();

3、解析xml 獲得document對象

Document document = reader.read(url);

* 解析XML:

// 1、得到某個具體的節(jié)點內(nèi)容:第2本書的書名--》葵花寶典

// 2、遍歷所有元素節(jié)點

XPath:

  • // nodename 選取此節(jié)點。
  • // / 從根節(jié)點選取。
  • // // 從匹配選擇的當(dāng)前節(jié)點選擇文檔中的節(jié)點,而不考慮它們的位置。
  • // .. 選取當(dāng)前節(jié)點的父節(jié)點。
  • // @ 選取屬性。
  • // [@屬性名] 屬性過濾
  • // [標(biāo)簽名] 子元素過濾

例子:

/* demo.xml
<?xml version="1.0" encoding="UTF-8"?>

  
    J.K. Rowling
    29.90$
  
  
    馬丁
    28.90$
  

*/
@Test
public void test1() throws DocumentException{
  SAXReader reader = new SAXReader();
  Document doc = reader.read("./src/demo.xml");
  Element root = doc.getRootElement();
  Element book1 = root.element("book");
  System.out.println(book1.getPath());
  System.out.println(book1.elementText("price"));
  List<?> list = root.elements("book");
  Element book2 = (Element) list.get(1);
  System.out.println(book2.attributeValue("name"));
  for(Iterator<?> it = book1.elementIterator();it.hasNext() ; ){
    Element ele = (Element) it.next();
    System.out.println(ele.getName()+" : "+ele.getText());
  }
}

@Test 
public void test2() throws Exception{//使用 XPath,只用于快速查詢,需要用jaxen...jar包
  SAXReader reader = new SAXReader();
  Document doc = reader.read(new File("src/demo.xml"));
  Node node = doc.selectSingleNode("/books/book[2]/author");//需要jaxen.jar包
  String s = node.getText();
  System.out.println(s);
  node = doc.selectSingleNode("/books/book[2]/@name");
  s = node.getText();
  System.out.println(s);
  
  List booknames = doc.selectNodes("/books//@name");
  for (Node node1 : booknames) {
    System.out.println(node1.getText());
  }
  
  List<?> nodes = doc.selectNodes("/books/*/*");
  for (int i=0; i

看完上述內(nèi)容,是不是對Java如何實現(xiàn)解析并生成xml有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:Java如何實現(xiàn)解析并生成xml
當(dāng)前網(wǎng)址:http://weahome.cn/article/gsphsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部