package com.app.test;

 import java.io.InputStream;
import java.util.List; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test; public class Dom4jTest {
//test时Juint的常用注解,选择函数名字 右键Run as Junit Test @Test
public void testParseXML() throws DocumentException {
SAXReader reader = new SAXReader();
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("weather.xml");
Document doc = reader.read(is);
Element root = doc.getRootElement();
printChild(root);
} public void printChild(Element root) {
@SuppressWarnings("unchecked")
List<Element> childList = root.elements();
System.out.println(root.getName()+" "+root.getText());
for (Element e : childList) {
if (e.elements().size() == 0) {
@SuppressWarnings("unchecked")
List<Attribute> attributeList = e.attributes();
for (Attribute a : attributeList) {
System.out.println(a.getName() + ":" + a.getValue());
}
System.out.println(e.getName() + " " + e.getText());
} else {
System.out.println(e.getName());
List<Attribute> attributeList = e.attributes();
for (Attribute a : attributeList) {
System.out.println(a.getName() + ":" + a.getValue()+"======================");
}
printChild(e);
}
}
}
}

递归解析XML的更多相关文章

  1. Xml学习笔记(3)利用递归解析Xml文档添加到TreeView中

    利用递归解析Xml文档添加到TreeView中 private void Form1_Load(object sender, EventArgs e) { XmlDocument doc = new ...

  2. dom4j递归解析XML字符串所有子节点

    /** * dom4j递归解析所有子节点 * * @param childElements * @param mapEle * @return */ public Map<String, Obj ...

  3. js中递归解析xml

    xml结构: <RightMenuItems>  <Item Code="New" Name="新建" GroupCode="Edi ...

  4. DOM解析XML文件例子

    DOM解析XML文件是一次性将目标文件中的所有节点都读入,然后再进行后续操作的方式. 一般分为以下几步: 1. 定义好目标XML文件路径path . 2. 实例化DOM解析工厂对象 ,Document ...

  5. DOM方式解析xml实例2

    老样子,javabean实体类: import java.io.*; public class Book implements Serializable { private int id; priva ...

  6. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  7. DuiLib 源码分析之解析xml类CMarkup & CMarkupNode cpp文件

    时隔5个月才有时间接着写未完成的实现部分,也是惭愧呀 选几个关机的函数来解析,一些get方法就忽略掉吧 CMarkupNode 与 CMarkUp 互为友元类,CMarkUp 实现解析,CMarkup ...

  8. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  9. 用JAXP的dom方式解析XML文件

    用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ...

随机推荐

  1. 开始学习HTML5

    今天学习了HTML的一些知识,从一本<HTML5网页设计案例课堂>开始.逐步了解从最早的网页的一直到现在HTML5的过程.现在到了最新版HTML5 从这本书中基本学习到了以下内容: HTM ...

  2. 倒影(box-reflect)

    box-reflect: 语法:box-reflect:none | <direction> <offset>? <mask-box-image>?因为不是w3c标 ...

  3. Ajax效果

    Ajax的效果就是不通过网页的跳转,就可以通过请求,就可以自动加载某个网页,在注册帐号时,经常 不通过网页跳转从数据库中查看是否有相同数据的出现,确认是否能够正确注册 下面是用其他方式实现ajax的效 ...

  4. nginx 错误日志分析 以及说明

    1.日志简介 nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日 ...

  5. 如何让Div层悬浮在Flash Object对象之上(转载)

    今天有个用户,门户右上角的倒三角登陆小按钮在他的电脑上无法显示,他用的笔记本屏幕较小,宽度正好显示出页面内容,经查看,门户页眉使用的为flash对象. 大家都知道,如果想让某个图片或者Div层悬浮在别 ...

  6. Android之Http网络编程(四)

    前面几篇博文简单的介绍了一些常见的Http的操作,这些操作几乎都是在新开的线程中进行的网络请求,并在日志中打印出获取到的网络数据.那么,问题来了!(呃~感觉下一句是蓝翔有木有?)如何在把获取到的网络数 ...

  7. Ajax的Get和Post的区别

    Ajax的Get和Post的区别Get方式:用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照U ...

  8. ubuntu中安装monodevelop

    sudo apt-get install monoDevelop sudo apt-get install build-essentialsudo apt-get install mono-devel ...

  9. WebClient.UploadValues Post中文乱码的解决方法

    //using (System.Net.WebClient wc = new System.Net.WebClient()) //{ // wc.Encoding = Encoding.GetEnco ...

  10. cocos2d-x实战 C++卷 学习笔记--第4章 字符串 __String类

    前言: <cocos2d-x实战C++卷>学习笔记.(cocos2d-x 是3.0版本) 介绍 cocos2d-x 通用的字符串类  __String . 使用cocos2d::__Str ...