dom4j解析节点名称和值

来源:互联网 发布:ipad架子鼓软件 编辑:程序博客网 时间:2024/04/29 01:28
package com.xue.dom4j;

import java.io.*;
import java.util.*;
import org.dom4j.io.*;
import org.dom4j.*;

/**
 * Description:
 * <br/>网站: http://www.crazyit.org
 * <br/>Copyright (C), 2001-2010, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  XueHaiJun
 * @version  1.0
 */
public class Dom4jRead {
    public static void main(String[] args) throws Exception
    {
        //使用XPP3Reader来解析XML文档
        XPP3Reader reader = new XPP3Reader();
        //使用SAXReader来解析XML文档
        //SAXReader reader = new SAXReader();
        Document doc = reader.read(new File("WebRoot/book.xml"));
        Element root = doc.getRootElement();
        Map<String,String> getResultMap = parse(root);
        System.out.println(getResultMap.get("book_name")+":11111:"+getResultMap.get("book_price"));
    }
    
    private static Map<String,String> resultMap = new HashMap<String,String>();
    
    public static Map<String,String> 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());
                resultMap.put(element.getQName().getName(), element.getText());
            }
        }
        return resultMap;    
    }
    //定义一个方法处理指定元素的所有属性
    public static void parseAttribute(Element ele)
    {
        //获取Element元素的所有属性
        List attList = ele.attributes();
        //遍历Element元素每个属性
        for (Object e : attList)
        {
            Attribute attr = (Attribute)e;
            //访问当前元素的每个属性的属性值
            System.out.println(ele.getQName().getName() + "元素的"
                + attr.getQName().getName() + "属性值为:"
                + attr.getValue());
        }
    }
}

0 0
原创粉丝点击