zoukankan      html  css  js  c++  java
  • XML(四)dom4j解析XML

    使用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);
    	}
    
    }
    
    


  • 相关阅读:
    zookeeper(四):核心原理(Watcher、事件和状态)
    zookeeper(三):java操作zookeeper
    Java并发编程(三):并发模拟(工具和Java代码介绍)
    Java并发编程(二):JAVA内存模型与同步规则
    Java并发编程(一):并发与高并发等基础概念
    zookeeper(一):功能和原理
    Sql 获取向上取整、向下取整、四舍五入取整的实例(转)
    gRPC详解
    Google Protobuf简明教程
    nginx error_page配置
  • 原文地址:https://www.cnblogs.com/llguanli/p/6845707.html
Copyright © 2011-2022 走看看