亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JDOM使用詳解及實例

2019-11-17 05:26:38
字體:
來源:轉載
供稿:網友

JDOM使用詳解及實例

一、JDOM 簡介JDOM是一個開源項目,它基于樹型結構,利用純java的技術對xml文檔實現解析、生成、序列化以及多種操作。JDOM 直接為JAVA編程服務。它利用更為強有力的JAVA語言的諸多特性(方法重載、集合概念以及映射),把SAX和DOM的功能有效地結合起來。在使用設計上盡可能地隱藏原來使用XML過程中的復雜性。利用JDOM處理XML文檔將是一件輕松、簡單的事。JDOM 在2000年的春天被Brett McLaughlin和Jason Hunter開發出來,以彌補DOM及SAX在實際應用當中的不足之處。這些不足之處主要在于SAX沒有文檔修改、隨機訪問以及輸出的功能,而對于DOM來說,JAVA程序員在使用時來用起來總覺得不太方便。DOM的缺點主要是來自于由于Dom是一個接口定義語言(IDL),它的任務是在不同語言實現中的一個最低的通用標準,并不是為JAVA非凡設計的。JDOM的最新版本為JDOM Beta 9。最近JDOM被收錄到JSR-102內,這標志著JDOM成為了JAVA平臺組成的一部分。二、JDOM 包概覽JDOM是由以下幾個包組成的
org.jdom                包含了所有的xml文檔要素的java類org.jdom.adapters         包含了與dom適配的java類org.jdom.filter            包含了xml文檔的過濾器類org.jdom.input            包含了讀取xml文檔的類org.jdom.output           包含了寫入xml文檔的類org.jdom.transform        包含了將jdom xml文檔接口轉換為其他xml文檔接口org.jdom.XPath            包含了對xml文檔xpath操作的類三、JDOM 類說明1、org.JDOM這個包里的類是你J解析xml文件后所要用到的所有數據類型。AttributeCDATAComentDocTypeDocumentElementEntityRefNamespacePRoscessingInstrUCtionText2、org.JDOM.transform在涉及xslt格式轉換時應使用下面的2個類JDOMSourceJDOMResultorg.JDOM.input3、輸入類,一般用于文檔的創建工作SAXBuilderDOMBuilderResultSetBuilderorg.JDOM.output4、輸出類,用于文檔轉換輸出XMLOutputterSAXOutputterDomOutputterJTreeOutputter使用前注重事項:1.JDOM對于JAXP 以及 TRax 的支持JDOM 支持JAXP1.1:你可以在程序中使用任何的parser工具類,默認情況下是JAXP的parser。制定非凡的parser可用如下形式SAXBuilder parser   = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl"); Document doc = parser.build("http://www.cafeconleche.org/"); // work with the document...JDOM也支持TRaX:XSLT可通過JDOMSource以及JDOMResult類來轉換(參見以后章節)2.注重在JDOM里文檔(Document)類由org.JDOM.Document 來表示。這要與org.w3c.dom中的Document區別開,這2種格式如何轉換在后面會說明。以下如無特指均指JDOM里的Document。四、JDOM主要使用方法1.Ducument類(1)Document的操作方法:Element root = new Element("GREETING");Document doc = new Document(root);root.setText("Hello JDOM!");或者簡單的使用Document doc = new Document(new Element("GREETING").setText("Hello JDOM!t"));這點和DOM不同。Dom則需要更為復雜的代碼,如下:DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();DocumentBuilder builder =factory.newDocumentBuilder();Document doc = builder.newDocument();Element root =doc.createElement("root");Text text = doc.createText("This is the root");root.appendChild(text);doc.appendChild(root);注重事項:JDOM不答應同一個節點同時被2個或多個文檔相關聯,要在第2個文檔中使用原來老文檔中的節點的話。首先需要使用detach()把這個節點分開來。(2)從文件、流、系統ID、URL得到Document對象:DOMBuilder builder = new DOMBuilder();Document doc = builder.build(new File("jdom_test.xml"));SAXBuilder builder = new SAXBuilder();Document doc = builder.build(url);在新版本中DOMBuilder 已經Deprecated掉 DOMBuilder.builder(url),用SAX效率會比較快。這里舉一個小例子,為了簡單起見,使用String對象直接作為xml數據源: public jdomTest() {    String textXml = null;    textXml = "<note>";    textXml = textXml +        "<to>aaa</to><from>bbb</from><heading>ccc</heading><body>ddd</body>";    textXml = textXml + "</note>";    SAXBuilder builder = new SAXBuilder();    Document doc = null;    Reader in= new StringReader(textXml);    try {      doc = builder.build(in);      Element root = doc.getRootElement();      List ls = root.getChildren();//注重此處取出的是root節點下面的一層的Element集合      for (Iterator iter = ls.iterator(); iter.hasNext(); ) {        Element el = (Element) iter.next();        if(el.getName().equals("to")){         System.out.println(el.getText());        }      }    }    catch (IOException ex) {      ex.printStackTrace();    }    catch (JDOMException ex) {      ex.printStackTrace();    }  }(3)DOM的document和JDOM的Document之間的相互轉換使用方法,簡單!DOMBuilder builder = new DOMBuilder();org.jdom.Document jdomDocument = builder.build(domDocument);DOMOutputter converter = new DOMOutputter();// work with the JDOM document&hellip;org.w3c.dom.Document domDocument = converter.output(jdomDocument);// work with the DOM document…2.XML文檔輸出XMLOutPutter類:JDOM的輸出非常靈活,支持很多種io格式以及風格的輸出Document doc = new Document(...);XMLOutputter outp = new XMLOutputter();outp.output(doc, fileOutputStream); // Raw outputoutp.setTextTrim(true); // Compressed outputoutp.output(doc, socket.getOutputStream());outp.setIndent(" ");// Pretty outputoutp.setNewlines(true);outp.output(doc, System.out);具體請參閱最新的JDOM API手冊3.Element 類:(1)瀏覽Element樹Element root = doc.getRootElement();//獲得根元素elementList allChildren = root.getChildren();// 獲得所有子元素的一個listList namedChildren = root.getChildren("name");// 獲得指定名稱子元素的listElement child = root.getChild("name");//獲得指定名稱的第一個子元素JDOM給了我們很多很靈活的使用方法來治理子元素(這里的List是java.util.List)List allChildren = root.getChildren();allChildren.remove(3); // 刪除第四個子元素allChildren.removeAll(root.getChildren("jack"));// 刪除叫“jack”的子元素root.removeChildren("jack"); // 便捷寫法allChildren.add(new Element("jane"));// 加入root.addContent(new Element("jane")); // 便捷寫法allChildren.add(0, new Element("first"));(2)移動Elements:在JDOM里很簡單Element movable = new Element("movable");parent1.addContent(movable); // placeparent1.removeContent(movable); // removeparent2.addContent(movable); // add在Dom里Element movable = doc1.createElement("movable");parent1.appendChild(movable); // placeparent1.removeChild(movable); // removeparent2.appendChild(movable); // 出錯!補充:糾錯性JDOM的Element構造函數(以及它的其他函數)會檢查element是否合法。而它的add/remove方法會檢查樹結構,檢查內容如下:1.在任何樹中是否有回環節點2.是否只有一個根節點3.是否有一致的命名空間(Namespaces) (3)Element的text內容讀取<description>A cool demo</description>// The text is directly available// Returns "/n A cool demo/n"String desc = element.getText();// There's a convenient shortcut// Returns "A cool demo"String desc = element.getTextTrim();(4)Elment內容修改element.setText("A new description");3.可正確解釋非凡字符element.setText("<xml> content");4.CDATA的數據寫入、讀出element.addContent(new CDATA("<xml> content"));String noDifference = element.getText();


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久天天躁狠狠躁夜夜躁| 精品成人国产在线观看男人呻吟| 欧美xxxx综合视频| 久久久精品日本| 最好看的2019的中文字幕视频| 久久久精品亚洲| 欧美男插女视频| 国产91免费观看| 久久噜噜噜精品国产亚洲综合| 57pao成人永久免费视频| 91色视频在线导航| 九九热这里只有在线精品视| 亚洲成av人片在线观看香蕉| 日韩电影大片中文字幕| 国产精品自拍小视频| 日韩一区二区三区xxxx| 精品夜色国产国偷在线| 日韩人在线观看| 在线播放国产精品| 92国产精品视频| 97精品一区二区三区| 久久久久久久激情视频| 亚洲黄在线观看| 国产精品丝袜久久久久久不卡| 国产精品高潮呻吟久久av野狼| 91久久精品在线| 日日狠狠久久偷偷四色综合免费| 国产成人精品综合| 欧美国产高跟鞋裸体秀xxxhd| 日韩精品中文字| 91国在线精品国内播放| 国产成人激情小视频| xx视频.9999.com| 欧美国产中文字幕| 欧美激情a∨在线视频播放| 播播国产欧美激情| 色悠悠国产精品| 国产精品久久久久久网站| 久久久久久美女| 亚洲福利在线观看| 成人乱人伦精品视频在线观看| 91tv亚洲精品香蕉国产一区7ujn| 日韩网站免费观看高清| 久久精品国产精品亚洲| 国产香蕉一区二区三区在线视频| 亚洲午夜性刺激影院| 国产在线999| 丝袜美腿亚洲一区二区| 精品福利免费观看| 亚洲人成网站色ww在线| 日韩在线播放视频| 欧美另类极品videosbest最新版本| 日韩av日韩在线观看| 国产香蕉精品视频一区二区三区| 欧美中在线观看| 91av在线看| 国产精品视频中文字幕91| 欧美国产日韩一区二区在线观看| 国产97色在线| 久久精品一本久久99精品| 亚洲欧美综合v| 日韩电影在线观看永久视频免费网站| 久久人人爽人人爽人人片av高清| 国产不卡在线观看| 日本精品免费一区二区三区| 国产欧美精品在线| 精品美女国产在线| 欧美成人第一页| 亚洲美女动态图120秒| 国产精品亚洲欧美导航| 亚洲成人黄色在线| 欧美激情欧美激情在线五月| 日韩精品在线免费观看| 久久久久久久久中文字幕| 国产精品无av码在线观看| 成人妇女免费播放久久久| 亚洲网站在线看| 亚洲欧美日韩精品久久奇米色影视| 亚洲香蕉成人av网站在线观看| 日韩中文字幕网| 国产成人精品国内自产拍免费看| 欧美成人剧情片在线观看| 久久久久久久久中文字幕| 久久人人爽亚洲精品天堂| 96pao国产成视频永久免费| 欧美中文在线观看| 有码中文亚洲精品| 91日本在线观看| 韩国三级日本三级少妇99| www.午夜精品| 成人国产精品色哟哟| 亚洲精品资源美女情侣酒店| 国产精品自产拍高潮在线观看| 97精品视频在线播放| 日韩高清电影免费观看完整版| 精品日韩中文字幕| 欧美日韩激情视频8区| 成人a视频在线观看| 一区国产精品视频| 日韩福利在线播放| 成人福利视频在线观看| 黑人巨大精品欧美一区二区三区| 亚洲欧美中文日韩在线| 欧美激情亚洲一区| 日韩在线免费视频观看| 亚洲欧美在线一区二区| 国产精品91在线观看| 久久影院中文字幕| 国产一区二区三区在线播放免费观看| 91国产视频在线播放| 91欧美精品午夜性色福利在线| 中文字幕精品一区久久久久| 在线看国产精品| 不卡伊人av在线播放| 欧美黄色小视频| 欧美日韩日本国产| 国产精品影片在线观看| 亚洲欧美变态国产另类| 国产精品 欧美在线| 亚洲人线精品午夜| 国产精品欧美一区二区三区奶水| 亚洲人成网站免费播放| 伊人av综合网| 国产精品aaa| 日韩69视频在线观看| 日韩欧美精品免费在线| 午夜精品一区二区三区视频免费看| 国产性色av一区二区| 国产精品自拍偷拍| 欧美一区二粉嫩精品国产一线天| 日韩中文字幕在线视频| 欧美一级片久久久久久久| 精品久久久国产精品999| 国产欧美一区二区三区视频| 亚洲成人av资源网| 欧美日本中文字幕| 日韩欧美国产成人| 中文字幕欧美视频在线| 亚洲激情在线视频| 欧美精品在线极品| 1769国内精品视频在线播放| 国产欧美亚洲精品| 91久久久久久久一区二区| 国产91精品黑色丝袜高跟鞋| 欧美性xxxxx极品娇小| 中文字幕日韩欧美精品在线观看| 国产亚洲一区二区在线| 亚洲美女久久久| 亚洲性夜色噜噜噜7777| 黄色精品一区二区| 亚洲精品有码在线| 亚洲色图狂野欧美| 国产精品免费视频xxxx| 亚洲国产精品热久久| 综合欧美国产视频二区| 亚洲图片欧洲图片av| 国产精品中文字幕在线| 成人伊人精品色xxxx视频| 亚洲欧洲一区二区三区在线观看| 欧美黑人巨大xxx极品| 在线成人中文字幕| 欧美亚洲在线视频| 亚洲免费影视第一页| 日韩欧美中文字幕在线播放|