package cn.jnk.tools.xml;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 解析XML文件
*
* @author Nonkey Jiang
* @since 2016-10-22
* @version 1.0
*
*/
public class ResolveXmlUtils
{
/**
* 读取xml文件
*
* @param path
* 文件路径
* @return document xml对应的document
*/
public static Document read(String path)
{
if (null == path)
{
return null;
}
Document document = null;
try
{
SAXReader reader = new SAXReader();
document = reader.read(new File(path));
}
catch (Exception e)
{
e.printStackTrace();
}
return document;
}
/**
* 获取xml的根节点
*
* @param document
* xml的dom
* @return element xml的根节点
*/
public static Element getRootElement(Document document)
{
if (null == document)
{
return null;
}
return document.getRootElement();
}
/**
* 读取指定节点的所有子节点
*
* @param node
* 节点名
* @return List<Element> 子节点集合
*/
public static List<Element> getElements(Element node)
{
if (null == node)
{
return null;
}
@SuppressWarnings("unchecked")
List<Element> list = node.elements();
return list;
}
/**
* 读取指定节点的指定子节点
*
* @param node
* 父节点名
* @param childNode
* 子节点名
* @return List<Element> 子节点集合
*/
public static Element getElement(Element node, String childNode)
{
if (null == node || null == childNode || "".equals(childNode))
{
return null;
}
return node.element(childNode);
}
/**
* 批量获取element的属性
*
* @param element
* 需要获取属性的对象
* @param arg...
* 属性列表
*
* @reuturn map<key,value> 属性对
*
*/
public static Map<String, String> getAttributes(Element node, String... arg)
{
if (null == node || arg.length == 0)
{
return null;
}
Map<String, String> attrMap = new HashMap<String, String>();
for (String attr : arg)
{
String attrValue = node.attributeValue(attr);
attrMap.put(attr, attrValue);
}
return attrMap;
}
/**
* 获取element的单个属性
*
* @param element
* 需要获取属性的对象
* @param attr
* 属性名
*
* @reuturn String 属性值
*
*/
public static String getAttribute(Element node, String attr)
{
if (null == attr || "".equals(attr))
{
return "";
}
return node.attributeValue(attr);
}
}
封装Dom4j库
最新推荐文章于 2021-12-29 11:26:49 发布