采用Dom4J对XML操作的简单示例

采用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");

本文出自:冯立彬的博客




 

你可能感兴趣的:(xml,String,encoding)