dom4j解析xml字符串实例
来源:互联网 发布:前端图片优化方案 编辑:程序博客网 时间:2024/05/08 20:55
dom4j解析xml字符串实例
先来看看dom4j中对应XML的DOM树建立的继承关系
针对于XML标准定义,对应于图2-1列出的内容,dom4j提供了以下实现:
同时,dom4j的NodeType枚举实现了XML规范中定义的node类型。如此可以在遍历xml文档的时候通过常量来判断节点类型了。
常用API
classorg.dom4j.io.SAXReader
- read
提供多种读取xml文件的方式,返回一个Domcument对象
interfaceorg.dom4j.Document
- iterator
使用此法获取node - getRootElement
获取根节点
interfaceorg.dom4j.Node
- getName
获取node名字,例如获取根节点名称为bookstore - getNodeType
获取node类型常量值,例如获取到bookstore类型为1——Element - getNodeTypeName
获取node类型名称,例如获取到的bookstore类型名称为Element
interfaceorg.dom4j.Element
- attributes
返回该元素的属性列表 - attributeValue
根据传入的属性名获取属性值 - elementIterator
返回包含子元素的迭代器 - elements
返回包含子元素的列表
interfaceorg.dom4j.Attribute
- getName
获取属性名 - getValue
获取属性值
interfaceorg.dom4j.Text
- getText
获取Text节点值
interfaceorg.dom4j.CDATA
- getText
获取CDATA Section值
interfaceorg.dom4j.Comment
- getText
获取注释
实例一:
1 //先加入dom4j.jar包 2 import java.util.HashMap; 3 import java.util.Iterator; 4 import java.util.Map; 5 6 import org.dom4j.Document; 7 import org.dom4j.DocumentException; 8 import org.dom4j.DocumentHelper; 9 import org.dom4j.Element; 10 11 19 public class TestDom4j { 20 21 public void readStringXml(String xml) { 22 Document doc = null; 23 try { 24 25 // 读取并解析XML文档 26 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 27 // 28 // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 29 // Document document = reader.read(new File("User.hbm.xml")); 30 // 下面的是通过解析xml字符串的 31 doc = DocumentHelper.parseText(xml); // 将字符串转为XML 32 33 Element rootElt = doc.getRootElement(); // 获取根节点 34 System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 35 36 Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head 37 38 // 遍历head节点 39 while (iter.hasNext()) { 40 41 Element recordEle = (Element) iter.next(); 42 String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值 43 System.out.println("title:" + title); 44 45 Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script 46 47 // 遍历Header节点下的Response节点 48 while (iters.hasNext()) { 49 50 Element itemEle = (Element) iters.next(); 51 52 String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值 53 String password = itemEle.elementTextTrim("password"); 54 55 System.out.println("username:" + username); 56 System.out.println("password:" + password); 57 } 58 } 59 Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body 60 // 遍历body节点 61 while (iterss.hasNext()) { 62 63 Element recordEless = (Element) iterss.next(); 64 String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值 65 System.out.println("result:" + result); 66 67 Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点form 68 // 遍历Header节点下的Response节点 69 while (itersElIterator.hasNext()) { 70 71 Element itemEle = (Element) itersElIterator.next(); 72 73 String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值 74 String subID = itemEle.elementTextTrim("subID"); 75 76 System.out.println("banlce:" + banlce); 77 System.out.println("subID:" + subID); 78 } 79 } 80 } catch (DocumentException e) { 81 e.printStackTrace(); 82 83 } catch (Exception e) { 84 e.printStackTrace(); 85 86 } 87 } 88 89 94 public static Map readStringXmlOut(String xml) { 95 Map map = new HashMap(); 96 Document doc = null; 97 try { 98 // 将字符串转为XML 99 doc = DocumentHelper.parseText(xml); 100 // 获取根节点101 Element rootElt = doc.getRootElement(); 102 // 拿到根节点的名称103 System.out.println("根节点:" + rootElt.getName()); 104 105 // 获取根节点下的子节点head106 Iterator iter = rootElt.elementIterator("head"); 107 // 遍历head节点108 while (iter.hasNext()) {109 110 Element recordEle = (Element) iter.next();111 // 拿到head节点下的子节点title值112 String title = recordEle.elementTextTrim("title"); 113 System.out.println("title:" + title);114 map.put("title", title);115 // 获取子节点head下的子节点script116 Iterator iters = recordEle.elementIterator("script"); 117 // 遍历Header节点下的Response节点118 while (iters.hasNext()) {119 Element itemEle = (Element) iters.next();120 // 拿到head下的子节点script下的字节点username的值121 String username = itemEle.elementTextTrim("username"); 122 String password = itemEle.elementTextTrim("password");123 124 System.out.println("username:" + username);125 System.out.println("password:" + password);126 map.put("username", username);127 map.put("password", password);128 }129 }130 131 //获取根节点下的子节点body132 Iterator iterss = rootElt.elementIterator("body"); 133 // 遍历body节点134 while (iterss.hasNext()) {135 Element recordEless = (Element) iterss.next();136 // 拿到body节点下的子节点result值137 String result = recordEless.elementTextTrim("result"); 138 System.out.println("result:" + result);139 // 获取子节点body下的子节点form140 Iterator itersElIterator = recordEless.elementIterator("form"); 141 // 遍历Header节点下的Response节点142 while (itersElIterator.hasNext()) {143 Element itemEle = (Element) itersElIterator.next();144 // 拿到body下的子节点form下的字节点banlce的值145 String banlce = itemEle.elementTextTrim("banlce"); 146 String subID = itemEle.elementTextTrim("subID");147 148 System.out.println("banlce:" + banlce);149 System.out.println("subID:" + subID);150 map.put("result", result);151 map.put("banlce", banlce);152 map.put("subID", subID);153 }154 }155 } catch (DocumentException e) {156 e.printStackTrace();157 } catch (Exception e) {158 e.printStackTrace();159 }160 return map;161 }162 163 public static void main(String[] args) {164 165 // 下面是需要解析的xml字符串例子166 String xmlString = "" + "" + "" 167+ "169+ "" + "0" + ""170+ "1000" + "36242519880716"171+ "" + "" + "";172173176Map map =readStringXmlOut(xmlString);177Iterator iters =map.keySet().iterator();178while(iters.hasNext()) {179String key = iters.next().toString();//拿到键180String val = map.get(key).toString();//拿到值181System.out.println(key + "=" + val); 182}183}184185}
实例二:
1 43 public static List
0 0
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析XML字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例
- 2014年06月12日
- quartz快速入门
- HQL常用函数
- 欧美经典歌曲100首(51-100…
- 快速排序详解
- dom4j解析xml字符串实例
- SVN服务器搭建--Subversio与TortoiseSVN的配置安装
- MySQL 索引的理解以及添加索引的原则
- Hibernate HQL截取字符…
- 正则工具regexbuddy
- Oracle设置最大游标数
- iOS5 ARC,IBOutlets&n…
- mysql 随机产生show命令失败
- iOS开发网络数据之AFNetwork…