采用Dom4J对XML操作的简单示例
原来一直都是采用JDOM,因项目有一个地方需要用到,因其和JDOM有些许差别,放示例于此做参考。
根据以下字符串生成Document对象,然后再对其进行简单的操作:
<?xml version="1.0" encoding="UTF-8"?><Request><Ctrl/><Head/><Body><Asxml/></Body></Request>
生成Document对象:
Document xmlDoc = DocumentHelper.parseText(xmlString);
生成XML对象如下:
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<Ctrl/>
<Head/>
<Body>
<Asxml/>
</Body>
</Request>
增加一个新的节点到Head节点下:
org.dom4j.Element newNode = DocumentHelper.createElement(nodename);
newNode.addText("child1");
xmlDoc.getRootElement().element("Head").add(newNode);
获取Head节点下直接子节点的数目:
int childNum = xmlDoc.getRootElement().element("Head").nodeCount();
删除Head节点下新增加的节点:
xmlDoc.getRootElement().remove(xmlDoc.getRootElement().element("head").element("child1"));
为指定的节点直接赋值:
xmlDoc.getRootElement().element("Body").element("Asxml").setText("一些值");
将Document输出为字符串的方法:
public static String toXML(org.dom4j.Document xmlDoc,String encoding) throws IOException{
ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式
//OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式
format.setEncoding(encoding);//设置编码
//format.setTrimText(false);//设置text中是否要删除其中多余的空格
XMLWriter xw;
xw = new XMLWriter(byteRep,format);
xw.write(xmlDoc);
return byteRep.toString();
}
使用示例;
String xmlString = toXML(xmlDoc,"GBK");
本文出自:冯立彬的博客