加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML(四)dom4j解析XML

发布时间:2020-12-16 06:16:03 所属栏目:百科 来源:网络整理
导读:使用dom4j需要导入jar包 jar包下载地址:http://pan.baidu.com/s/1o65jWRw 将dom4j-1.6.1.jar包导入Eclipse book2.xml ?xml version="1.0" encoding="UTF-8"?书架 书 书名JAVA/书名 作者XXXXXX/作者 售价23333/售价 /书 书 书名ANDROID/书名 作者XXXXXX/作者

使用dom4j需要导入jar包

jar包下载地址:http://pan.baidu.com/s/1o65jWRw

将dom4j-1.6.1.jar包导入Eclipse


book2.xml

<?xml version="1.0" encoding="UTF-8"?>

<书架> 
  <书> 
    <书名>JAVA</书名>  
    <作者>XXXXXX</作者>  
    <售价>23333</售价> 
  </书>  
  <书> 
    <书名>ANDROID</书名>  
    <作者>XXXXXX</作者>  
    <售价>23333</售价> 
  </书> 
</书架>


解析book2.xml这个文件。

方法:
获取文档的根结点:

Element root = document.getRootElement();

获取某个结点的子节点

Element element = root.element();

获取某个结点下的所有子节点:
List elements = root.elements();

遍历该结点下的所有子节点
以递归的方式进行

public class dom4j {

	public static void main(String[] args) throws Exception {
		// method_1();
		method_2();
	}

	private static void method_2() throws Exception {
		SAXReader reader = new SAXReader();
		Document document = reader.read("book2.xml");
		Element root = document.getRootElement();
		parse(root);
	}

	private static void parse(Element ele) {
		// 处理当前元素包含的所有属性
		parseAttribute(ele);
		// 获取当前元素包含的所有
		List el = ele.elements();
		for (Object e : el) {
			Element element = (Element) e;
			// 如果该元素的内容不是只包含字符串
			if (!element.isTextOnly()) {
				parse(element);
			} else {
				// 处理当前 元素的全部属性
				parseAttribute(element);
				// 获取当前元素的内容
				System.out.println(element.getQName().getName() + "-->"
						+ element.getText());
			}
		}
	}

	/**
	 * 处理元素属性
	 * 
	 * @param ele
	 */
	private static void parseAttribute(Element ele) {
		List attributes = ele.attributes();
		for (Object e : attributes) {
			Attribute attribute = (Attribute) e;
			System.out.println(ele.getQName().getName() + "元素的"
					+ attribute.getQName().getName() + "属性为"
					+ attribute.getValue());
		}
	}

	private static void method_1() throws Exception {
		// 获取解析器
		SAXReader reader = new SAXReader();
		// 解析xml获取代表整个文档的dom对象
		Document document = reader.read("book2.xml");
		// 获取根结点
		Element rootElement = document.getRootElement();
		// 获取书名
		String bookName = rootElement.element("书").element("书名").getText();
		System.out.println("bookName--:   " + bookName);
	}

}


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读