XmlUtil工具类

import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * 基于dom4j的工具包
 * 
 * 
 */
public class XmlUtil
{
    /**
     * 日志服务
     */
    private static Logger LOG = LoggerFactory.getLogger(XmlUtil.class);

    /**
     * 解析XML为Document对象
     * 
     * @param xml
     *            被解析的XMl
     * @return Document
     */
    public static Element parseXml(String xml)
    {
        Document document = null;
        //
        StringReader sr = new StringReader(xml);
        SAXReader saxReader = new SAXReader();
        try
        {
            document = saxReader.read(sr);
        }
        catch (DocumentException e)
        {
            LOG.error("解析失败", e);
        }
        return null == document ? null : document.getRootElement();
    }

    /**
     * 获取element对象的text的值
     * 
     * @param em
     *            节点的对象
     * @param tag
     *            节点的tag
     * @return 节点
     */
    public static String getText(Element em, String tag)
    {
        if (null == em)
        {
            return null;
        }
        Element e = em.element(tag);
        //
        return null == e ? null : e.getText();
    }

    /**
     * 递归解析xml节点,适用于 多节点数据
     * 
     * @param node
     *            node
     * @param nodeName
     *            nodeName
     * @return List<Map<String, Object>>
     */
    @SuppressWarnings("unchecked")
    public static List<Map<String, Object>> listNodes(Element node, String nodeName)
    {
        if (null == node)
        {
            return null;
        }
        // 初始化返回
        List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
        // 首先获取当前节点的所有属性节点
        List<Attribute> list = node.attributes();

        Map<String, Object> map = null;
        // 遍历属性节点
        for (Attribute attribute : list)
        {
            if (nodeName.equals(node.getName()))
            {
                if (null == map)
                {
                    map = new HashMap<String, Object>();
                    listMap.add(map);
                }
                // 取到的节点属性放到map中
                map.put(attribute.getName(), attribute.getValue());
            }

        }
        // 遍历当前节点下的所有节点 ,nodeName 要解析的节点名称
        // 使用递归
        Iterator<Element> iterator = node.elementIterator();
        while (iterator.hasNext())
        {
            Element e = iterator.next();
            listMap.addAll(listNodes(e, nodeName));
        }
        return listMap;
    }

}
XMLUtil 是一个工具类,主要用于读取 XML 配置文件并提供相应的操作方法。XMLUtil 的主要功能包括: 1. 读取 XML 配置文件:XMLUtil 可以读取指定路径下的 XML 配置文件,并将其解析成对应的 Java 对象或数据结构。这样,Java 应用程序就可以通过 XML 配置文件来获取应用程序的配置信息,而不需要硬编码到代码中。 2. 解析 XML 配置文件:XMLUtil 可以解析 XML 配置文件中的各种元素和属性,并将其转换为 Java 对象或数据结构。这样,Java 应用程序就可以通过 Java 对象或数据结构来访问 XML 配置文件中的配置信息。 3. 提供操作方法:XMLUtil 还提供了一些常用的操作方法,比如获取指定元素或属性的值、添加或删除指定元素或属性等。这样,Java 应用程序就可以通过 XMLUtil 提供的方法来修改 XML 配置文件中的配置信息。 XMLUtil 的好处包括: 1. 简化配置:通过 XML 配置文件,Java 应用程序可以将配置信息与代码分离,使得配置信息更易于管理和维护。而 XMLUtil 则可以更加方便地读取和解析 XML 配置文件,从而简化了配置的过程。 2. 提高灵活性:由于 XMLUtil 可以将 XML 配置文件解析成 Java 对象或数据结构,所以 Java 应用程序可以通过 Java 对象或数据结构来访问配置信息,从而提高了应用程序的灵活性。 3. 提高可维护性:通过 XMLUtil 提供的操作方法,Java 应用程序可以更加方便地修改 XML 配置文件中的配置信息,从而提高了应用程序的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值