一、前言
通过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@小木人印象