一、前言
通过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\"?>小木人印象http://www.xwood.net";@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@小木人印象