首页

通过dom4j解析XML字符串XMLDocUtil工具类转换为XML文档及获取指定根节点及指定节点路径内容代码示例

标签:dom4j,解析xml,XMLDocUtil工具类,XML文档工具类     发布时间:2018-10-04   

一、前言

通过dom4j解析XML文档的XMLDocUtil工具类,进行解析xml字符串为Document文档对象、获取根节点元素路径内容getRootElement、获取唯一路径节点的值getSingleNodeValue及获取节点集合的值getNodeSValue等相关节点元素方法处理。

二、代码示例

import java.util.List;@b@import org.dom4j.Document;@b@import org.dom4j.DocumentException;@b@import org.dom4j.DocumentHelper;@b@import org.dom4j.Element;@b@import org.dom4j.Node;@b@@b@/**@b@ * XML文档处理工具类 @b@ */@b@public class XMLDocUtil {@b@  @b@    private Document xmlDoc; @b@	private Element msgElement = null; @b@	private static String XML_ENCODING = "UTF-8";@b@	@b@	/**@b@	 * 创建默认(UTF-8)编码的XML文档@b@	 */@b@	public XMLDocUtil(){@b@		createXmlDoc();@b@	}@b@	@b@	/**@b@	 * 创建指定编码的XML文档@b@	 * @param xmlEncoding 编码@b@	 */@b@	public XMLDocUtil(String xmlEncoding){@b@		XML_ENCODING = xmlEncoding;@b@	}@b@	@b@	private void createXmlDoc(){@b@		xmlDoc = DocumentHelper.createDocument();@b@		xmlDoc.setXMLEncoding(XML_ENCODING);@b@	}@b@	@b@	/**@b@	 * @return 返回XML文档@b@	 */@b@	public Document getDocument(){@b@		return xmlDoc;@b@	}@b@	@b@	@b@	/**@b@	 * 把XML字符串转换为XML文档@b@	 * @param xmlStr XML字符串@b@	 * @return XML文档@b@	 * @throws DocumentException@b@	 */@b@	public static Document parseStr2XML(String xmlStr) throws DocumentException{@b@		return DocumentHelper.parseText(xmlStr);@b@	}@b@	@b@	/**@b@	 * 获取唯一路径节点的值@b@	 * @param doc XML文档@b@	 * @param nodePath 节点路径(唯一的)@b@	 * @return@b@	 */@b@	public static String getSingleNodeValue(Document doc,String nodePath){@b@		Node node = doc.selectSingleNode(nodePath);@b@		return node.getText();@b@	}@b@	@b@	/**@b@	 * 获取节点集合的值@b@	 * @param doc XML文档@b@	 * @param nodePath 节点路径@b@	 * @return@b@	 */@b@	public static List getNodeSValue(Document doc,String nodePath){@b@		List list = doc.selectNodes(nodePath);@b@		return list;@b@	}@b@	@b@	public static void main(String[] args) {@b@        String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><xwood><webname>小木人印象</webname><url>http://www.xwood.net</url></xwood>";@b@        try {@b@            Document dom = parseStr2XML(s);@b@            System.out.println(dom.getRootElement().getPath());@b@            System.out.println(getSingleNodeValue(dom,"xwood/webname/text()"));@b@        } catch (DocumentException e) { @b@        }@b@    }@b@	@b@	@b@}

控制台打印结果

小木人印象http://www.xwood.net@b@小木人印象