国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

淺談Java開源XML工具包dom4j

開發
dom4j是一個使用簡便的開源類庫,專門用來在Java平臺上處理XML,XPath和XSLT,該類庫使用了Java Collections Framework,完全支持DOM,SAX和JAXP。

dom4j為一個XML文檔在內存中創建了一個樹對象模型。 它提供了一組強大易用的API,通過XPath和XSLT來處理、操縱或者遍歷XML文件,此外其中還集成了SAX、JAXP和DOM。

為了提供高度可配置的實現策略,dom4j基于接口設計。只需要提供一個DocumentFactory實現,您就可以創建您自己的XML樹實現。這種設計,使得在擴展dom4j以定制您需要的特性時,能非常簡單地重用dom4j的代碼。

本文檔將通過代碼實例的方式為您提供一個dom4j的實踐指南。在實驗室項目中,這個開源工具包給我的工作帶來了很大的便利,在這篇文章中,我將對項目中用到dom4j完成的任務做個總結,以期和互聯網上的眾多文檔能夠互相補充。

讀取XML文件

一般性地讀取XML文件,在dom4j中操作起來將非常簡單。

public void readXMLSimple(File file) throws DocumentException{
    //使用SAXReader讀取XML文件
    SAXReader sr = new SAXReader();
    Document doc = sr.read(file);

    //使用XPath遍歷一個XML文件的結點
    Element root = doc.getRootElement();
    List entryList1 = root.selectNodes("entry");
    //或者
    List entryList2 = doc.selectNodes("/feed/entry");
}

創建一個XML文檔并記錄到磁盤上

創建一個XML文件,并將其寫到磁盤上,也可以使用非常簡介的代碼來完成,假設我們將上一個代碼范例中得到的entry節點的列表,插入到一個新建的XML文檔中,然后使用優美的縮進格式保存在磁盤上,我們可以像下面這樣編碼:

public void createXMLSimple(List entries, File f)
        throws FileNotFoundException,
               UnsupportedEncodingException,
               IOException{
    Document doc = DocumentHelper.createDocument();
    doc.addElement("feed");
    Element root = doc.getRootElement();
    Iterator i = entries.iterator();
    while(i.hasNext()){
       //從別的Dom中得到的Element都有其本身
        //的root,所以必須創建副本才能插入另一個doc內
        root.add(((Element)i.next()).createCopy());
    }
    FileOutputStream os = new FileOutputStream(f);
    OutputFormat of = OutputFormat.createPrettyPrint();
    XMLWriter xmlw = new XMLWriter(os,of);
    xmlw.write(doc);
}

讀取一個根節點帶有默認Namespace的XML

如果我們剛才的代碼范例讀取的是符合Atom1.0標準的Feed,那么,根節點帶有default namespace的http://www.w3.org/2005/Atom。讀取這樣的XML文檔稍微有點麻煩,網上的代碼很多,但是很多都不好用,我總結下來,基本上沒有辦法像你想的那么干凈。

public void treatDefaultNamespace(File f)
        throws DocumentException{
    SAXReader sr = new SAXReader();
    Map ns = new HashMap();
    ns.put("atom", "http://www.w3.org/2005/Atom");
    sr.getDocumentFactory().setXPathNamespaceURIs(ns);
    //Element接口支持迭代器,在這里順便展示一下
    Element root = sr.read(f).getRootElement();
    Iterator i = root.elementIterator();
    while(i.hasNext()){
        Element e = (Element) i.next();
        //一旦指定了Namespace,則使用XPath的時候必須帶上
         //即便是默認的Namespace也一樣,不過前面那個名字
         //可以盡可能寫得短,編碼的時候方便,比如改成a
        String title = e.selectSingleNode("atom:title").getText();
        System.out.println(title);
    }
}

創建一個根節點帶有默認Namespace的XML

創建一個帶有default namespace的XML的方法,相當的tricky,因為你創建一個Element的方法有很多種,可以通過add方法,默認的建,也可以使用DocumentHelper對象來創建,不過,每種方法給你的結果都不同,往往讓你大吃一驚。其他的那些方法,和得到的多種結果,大家可以在網上看,很多。我就提供一個能創建“干凈”的XML的代碼范例。

public void createXMLWithDefaultNamespace(List entries){
    Document d = DocumentHelper.createDocument();
    d.addElement("feed","http://www.w3.org/2005/Atom");
    Element root = d.getRootElement();
    //省略迭代entries代碼
    root.addElement("title").add(DocumentHelper.createCDATA(title));
    root.addElement("id").add(DocumentHelper.createText(guid));
    root.addElement("category").add(DocumentHelper.createText(category));
    root.addElement("link").add(DocumentHelper.createText(permalink));
    root.addElement("updated").add(DocumentHelper.createText(updated));
}

最后,羅列一下上文中用到的所有對象所在的包,沒有列出的在J2SE內。

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

【編輯推薦】

  1. JavaFX HTTP網絡和XML分析
  2. 詳解Java解析XML的四種方法
  3. XML新手入門 創建構造良好的XML
責任編輯:彭凡 來源: sexywp.com/
相關推薦

2009-06-23 14:17:00

Dom4j

2011-04-13 09:30:28

dom4j

2012-05-30 10:03:57

dom4jXML亂碼

2024-07-22 08:16:15

2013-05-30 15:02:33

dom4j反射

2009-11-17 14:39:59

PHP工具包

2016-02-16 13:21:33

2019-05-13 09:22:21

微軟開源機器學習

2009-06-18 15:42:15

J2EE架構

2021-05-14 15:14:20

LibreOfficeGTK4式具包

2021-03-16 14:44:30

工具代碼開發

2018-05-03 09:03:16

微軟工具包Windows

2012-05-08 11:03:28

Coding4Fun

2022-04-09 10:02:59

HTTPLInux開源

2016-01-27 13:34:07

開源語音識別CNTK

2014-12-31 14:09:23

xml解析

2012-02-16 09:42:41

Javalambdaj

2011-08-31 14:15:54

JavaJodd

2011-12-28 10:57:37

2021-01-25 21:01:42

開源技術 工具
點贊
收藏

51CTO技術棧公眾號

日韩免费一区二区| 激情小说综合网| 美脚恋feet久草欧美| 欧美丰满少妇xxxxx高潮对白| 黄色大片在线播放| 中文字幕视频一区二区在线有码 | 国产乱码精品一区二区三区忘忧草| 成年人黄色在线观看| 国产片一区二区| 亚洲精品套图| 亚洲国产99精品国自产| 亚洲1区在线| 亚洲一区二区三区乱码aⅴ| 性久久久久久| 久久精品一区二| 欧美猛男男办公室激情| 成人自拍在线| 亚洲在线观看一区| 中文字幕一区在线| 中文日产幕无线码一区二区| 91在线观看免费观看 | 精品影院一区| 欧美理论片在线观看| 在线日韩av| 97秋霞电影网| 中文亚洲视频在线| 欧美午夜影院| 中文字幕在线影视资源| 中文字幕精品久久久久| 青青草国产成人99久久| 国产视频在线看| 午夜欧美大片免费观看| 国产成人综合亚洲网站| 国产精品久久麻豆| αv一区二区三区| 亚洲福利一区二区| 私拍精品福利视频在线一区| 欧美黑人经典片免费观看| 日韩精品在线观看视频| 日韩av高清在线观看| av网站大全在线| 91免费国产视频| 91九色02白丝porn| 欧美色图一区| 色视频在线看| 99视频网站| 欧美午夜寂寞影院| 激情一区二区| 青青青国内视频在线观看软件| 秋霞久久久久久一区二区| 91精品国产乱码久久蜜臀| 亚洲国产精品第一区二区三区| 伦xxxx在线| 久久www视频| 最近中文字幕日韩精品| 成人精品一区二区三区四区| 热久久久久久| 视频免费观看| 成人黄色免费网站在线观看| 欧美浪妇xxxx高跟鞋交| 日韩高清国产一区在线| 亚洲伊人伊成久久人综合网| 欧美午夜aaaaaa免费视频| 欧美做受高潮1| 在线观看国产精品网站| 日一区二区三区| 精品国产亚洲日本| 在线看国产视频| japanese在线视频| 久久久久久久久久久人体| 日韩一区二区在线播放| 99久久99久久久精品齐齐| 人人精品亚洲| 久草在线视频福利| 亚洲色图久久久| 欧美久久久久久久| 国产成人精品一区| 欧美视频你懂的| caoporm超碰国产精品| 国内精品久久久久久久久电影网| av在线理伦电影| 肥女人的一级毛片| av不卡在线免费观看| 国产精品久久久久久久电影| 日韩精品中文字幕久久臀| 亚洲免费观看高清完整版在线观看| 亚洲在线黄色| 国产高清一区二区| 久久综合偷偷噜噜噜色| 69av成人| 国产中文字幕在线观看| www亚洲成人| 久久久久久久9| 亚洲欧美成人一区| 国产女主播一区二区| 国产精品成人播放| 色综合久久悠悠| 亚洲欧美另类人妖| 欧美精品xxxxbbbb| 亚洲欧美偷拍三级| 亚洲激情第一区| 在线观看国产精品91| 久久久免费精品| 日韩一级大片在线观看| 国产精品三级在线观看| 99久久综合色| 国产精品66部| 老司机精品导航| 亚洲天堂激情| 亚洲精品一区二区在线看| 美女久久久久| 香蕉视频一区二区三区| 欧美成人毛片| 国模大尺度视频一区二区| 国产成人77亚洲精品www| 亚洲国产福利| 成人做爰视频www网站小优视频| 永久域名在线精品| 中文精品一区二区三区| 三年中文高清在线观看第6集| 日韩伦理一区二区三区av在线| 国产精品一区二区你懂得| 欧美美乳视频网站在线观看| 国产伦精品一区二区三区| 欧美日韩三区四区| 国产精品久久..4399| 免费福利片在线观看| 污视频免费在线看| 国产福利小视频在线观看| av女在线播放| 日本亚州欧洲精品不卡| 在线视频亚洲专区| 黄色av网站在线免费观看| av毛片在线| 自拍偷拍亚洲图片| 欧美日韩精品在线一区| 欧美日本一区| 国产suv精品一区二区三区| 日本一区二区视频在线| 欧美日韩精品一区二区三区四区 | 免费成人av网站| 性欧美.com| 天美星空大象mv在线观看视频| a√免费观看在线网址www| 永久免费av在线| 久久99成人| 日本午夜一本久久久综合| av在线播放一区二区三区| 精品国产1区2区| 伊人久久久久久久久久久| 国产精品久久久久免费a∨大胸| 亚洲欧美电影在线观看| 日韩av卡一卡二| 黄色a级在线观看| 老司机午夜激情| 精品国产18久久久久久二百| 国产欧美在线| 亚洲精品视频在线观看网站| 日韩av影视综合网| 99在线视频首页| av天堂永久资源网| 黄色成人在线| 国产精品草草| 国产精品久久久久影院老司| 日韩精品一区二区视频| 国产欧美综合精品一区二区| 白浆爆出在线观看| www.久久久.com| 日韩av中文字幕一区二区三区| 一区av在线播放| 91精品国产91久久| 久久久久久久片| 2018av在线| 国产一级久久| 亚洲婷婷国产精品电影人久久| 久久久91精品| 妺妺窝人体色777777| 在线免费av网站| 136国产福利精品导航网址| 午夜激情一区二区| 国产精品天天狠天天看 | 欧美精品国产精品| 国产另类自拍| 在线日本中文字幕| 在线观看视频免费一区二区三区| 大荫蒂欧美视频另类xxxx| 国产精品国模大尺度私拍| 爽爽视频在线观看| 亚洲国产导航| 日韩亚洲欧美成人一区| 亚洲福利av| 日韩欧美一区二区三区在线观看| 成人av综合在线| 欧美乱大交xxxxx另类电影| 美女一区二区三区视频| 欧美亚洲tv| 欧美图区在线视频| 潘金莲一级淫片aaaaaa播放1| 成人豆花视频| 色一情一伦一子一伦一区|