亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java實現解析并生成xml原理實例詳解

瀏覽:2日期:2022-08-31 11:35:46

XML解析:

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

xml解析思想:

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

DocumentElementTextAttributeComment

* SAX:逐行讀取,基于事件驅動* 優點:不占內存,速度快* 缺點:只能讀取,不能回寫

xml常用的解析器:

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

1.導入jar包 dom4j.jar

2.創建解析器

SAXReader reader = new SAXReader();

3.解析xml 獲得document對象

Document document = reader.read(url);

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

使用步驟:

1、注意:要導包 jaxen...jar

2、創建解析器

SAXReader reader = new SAXReader();

3、解析xml 獲得document對象

Document document = reader.read(url);

* 解析XML:

// 1、得到某個具體的節點內容:第2本書的書名--》葵花寶典

// 2、遍歷所有元素節點

XPath:

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

例子:

/* demo.xml<?xml version='1.0' encoding='UTF-8'?><books> <book name='Harry Potter'> <author>J.K. Rowling</author> <price>29.90$</price> </book> <book name='冰與火之歌'> <author>馬丁</author> <price>28.90$</price> </book></books>*/@Testpublic 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<Node> booknames = doc.selectNodes('/books//@name'); for (Node node1 : booknames) { System.out.println(node1.getText()); } List<?> nodes = doc.selectNodes('/books/*/*'); for (int i=0; i<nodes.size(); ++i){ Node node1 = (Node) nodes.get(i); System.out.println(node1.getName() + ': ' + node1.getText()); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 大尺度做爰床戏呻吟免费观 | 亚洲欧美日韩精品在线 | 青青在线精品2018国产 | 黄色网久久 | 亚洲人成一区二区不卡 | 麻豆网站| 日韩精品一区二区在线观看 | 国产精品视频久久久久 | 国产tv在线观看 | 青草免费免费观看视频在线 | 欧美一级特黄aa大片婷婷 | 国产小视频免费观看 | 性插影院 | 国产精品v片在线观看不卡 国产精品v在线播放观看 | 国产成人精品久久免费动漫 | 鲁丝片一区二区三区毛片 | 永久免费观看午夜视频在线 | 男女毛片免费视频看 | 成人老司机深夜福利久久 | wwwwww黄| 青青青青爽极品在线视频 | 精品免费久久久久久久 | 亚洲国产成人精品一区二区三区 | 99视频都是精品热在线播放 | 国产精品jizz观看 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片免费 | 黄色三级视频在线播放 | 欧美精品一区二区在线观看播放 | 黄网在线看 | 免费 欧美 自拍 在线观看 | 日本一区二区三区久久精品 | 黄色aaa毛片 | 欧美一区二区三区不卡免费观看 | 一级毛片在线播放 | 色悠久久久 | 纯欧美一级毛片免费 | 亚洲国产天堂久久综合网站 | 精品国产成人三级在线观看 | 中文激情 | 女人精aaaa片一级毛片女女 | 婷婷五月色综合 |