利用dom4j创建XML和解析XML

来源:互联网 发布:时时彩源码技术论坛 编辑:程序博客网 时间:2024/04/28 05:56

package com.ylt.mfz.util;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class Dom4jDemo {

 /**
  * 创建xml文件
  * @param fileName
  */
 public void createXml(String fileName)
 {  
  Document document = DocumentHelper.createDocument();  //创建文档 
  Element employees=document.addElement("employees");  
  Element employee=employees.addElement("employee");  
  Element name= employee.addElement("name");   //添加子节点
  name.setText("ddvip"); //添加Text值;例:<a>abc</a>
  name.setAttributeValue("sa", "sa"); //添加属性;例:<a item="item"></a>
  Element sex=employee.addElement("sex");  
  sex.setText("m");  
  Element age=employee.addElement("age");  
  age.setText("29");  
  try {  
   Writer fileWriter=new FileWriter(fileName);  
   XMLWriter xmlWriter=new XMLWriter(fileWriter);  
   xmlWriter.write(document);   //写入文件中
   xmlWriter.close(); 
   } catch (IOException e) {  
    System.out.println(e.getMessage());  
   }  
 }  
 
 /**
  * 读取xml文件
  * @param fileName
  */
 public void parserXml(String fileName)
 {  
  File inputXml=new File(fileName);  
  SAXReader saxReader = new SAXReader();  
  try {  
   Document document = saxReader.read(inputXml);   //把文件读入到文档
   Element employees=document.getRootElement();   //获取文档根节点
   //System.out.println(employees);
   //for(Iterator i = employees.elementIterator(); i.hasNext();){  
    //Element employee = (Element) i.next(); 
//    System.out.println(employee);
//    for(Iterator j = employee.elementIterator(); j.hasNext();){  
//     Element node=(Element) j.next();  
//     System.out.println(node.getName()+":"+node.getText()+":");
//     for(Iterator m = node.attributeIterator();m.hasNext();)
//     {    
//      Attribute item = (Attribute)m.next();
//      System.out.println(item.getName()+","+item.getValue());
//     }
//    }  
    this.doublexml(employees);
   //}  
  } catch (DocumentException e) {  
   System.out.println(e.getMessage());  
  }  
   System.out.println("dom4j parserXml");  
 }  
 
 
 private void doublexml(Element ele)
 {
  for(Iterator i = ele.elementIterator();i.hasNext();)
  {
   Element node = (Element)i.next();
   System.out.println("节点名:"+node.getName());
   if(node.attributes()!=null && node.attributes().size()>0)
   {
    for(Iterator j = node.attributeIterator();j.hasNext();)
    {
     Attribute item = (Attribute)j.next();
     System.out.print("属性名:"+item.getName()+"\t属性值:"+item.getValue()+"\n");
    }
   }
   if(node.getText().length()>0)
   {
    System.out.println("节点值:"+node.getText());
   }
   if(node.elementIterator().hasNext())
   {
    this.doublexml(node);
   }
  }
 }
 
 public static void main(String[] args) {
  Dom4jDemo demo = new Dom4jDemo();
   
  demo.createXml("d:/sa.xml");
   
  demo.parserXml("d:/getchannels[1].xml");
 }
}
<PRE class=java name="code"></PRE><PRE class=java name="code"></PRE><PRE class=java name="code"></PRE>