java解析xml之一 Dom4j

2009-6-19
java解析xml之一 Dom4j
【实现:】
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
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;
/**
*
* @author xiaohua
* Dom4j 生成XML文档与解析XML文档
*/
public class Dom4jDemo implements XmlDocument
{
    public void init()throws Exception
    {
           
    }
    /*
     (non-Javadoc)
     *  @paranm fileName 文件名称
     */
    public void createXml(String fileName) throws Exception
{
   //1.产生Document对象
       Document doc=DocumentHelper.createDocument();     
    //2.产生根元素
       Element employees=doc.addElement("employees");
       //3.产生子元素
       Element employee=employees.addElement("employee");
      //4.利用子元素添加属性和值
       Element name=employee.addElement("name");
       name.setText("xiaohua");
       Element sex=employee.addElement("sex");
       sex.setText("w");
       Element age=employee.addElement("age");
       age.setText("22");
       try
       {
       //5.利用Writer对象,产生XMLWriter对象
               Writer w=new FileWriter(fileName);
               XMLWriter xml=new XMLWriter(w);
       //6.将Document对象写入xml对象中
               xml.write(doc);
7.关闭XMLWriter对象
               xml.close();
              
       }
       catch(IOException ioe)
       {
               ioe.printStackTrace();
       }
       catch(Exception e)
       {
               e.printStackTrace();
       }
    }
    public void parserXml(String fileName)throws Exception
    {
        //1.分别产生File和SAXReader
        File inputXml=new File(fileName);
        SAXReader saxReader = new SAXReader();//SAXReader 解析xml的
        try {
//2. 利用SAXReader对象读取文件的信息,并返回Document对象
                 Document doc=saxReader.read(inputXml);
          //3.利用Document对象对象产生根元素
                 Element employees=doc.getRootElement();
                 //4.遍历根元素的内容
                 for(Iterator i=employees.elementIterator();i.hasNext();)
                 {
                         //5.根元素的集合对象来获取子元素
Element employee=(Element)i.next();
                          //6.遍历子元素内容
                          for(Iterator j=employee.elementIterator();j.hasNext();)
                          {
                 //7.获取子元素节点信息
                                  Element node=(Element)j.next();
                                  System.out.println("节点名称:"+node.getName()+"值:"+"------>"+node.getText());
                          }
                          
                 }
                 

       } catch (DocumentException e) {

           System.out.println(e.getMessage());

       }

     System.out.println("dom4j parserXml");

    }

    public static void main(String[] ar)throws Exception
    {
            Dom4jDemo d=new Dom4jDemo();
            //d.createXml("e:\\employees.xml");
            d.parserXml("e:\\employees.xml");
    }
        public void pareser(String fileName) throws Exception
        {
                // TODO Auto-generated method stub
               
        }
}
显示效果:


Employees。Xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<employees>
  <employee>
    <name>ddviplinux</name>
    <sex>m</sex>
    <age>30</age>
  </employee>
    <employee>
    <name>ddd</name>
    <sex>m</sex>
    <age>22</age>
  </employee>
</employees>

【小结】:
1.        DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
2.        SAXReader 解析xml的常用类。
解析步骤:
  //1.分别产生File和SAXReader       
//2. 利用SAXReader对象读取文件的信息,并返回Document对象
//3.利用Document对象对象产生根元素
//4.遍历根元素的内容
//5.根元素的集合对象来获取子元素
//6.遍历子元素内容
//7.获取子元素节点信息

3.写入xml文件的类:XMLWriter。写入语句Writer w=new FileWriter(fileName);
               XMLWriter xml=new XMLWriter(w);
               xml.write(doc);
步骤:
a. //1.产生Document对象
b.//2.产生根元素
c. //3.产生子元素
d.//4.利用子元素添加属性和值
e. //5.利用Writer对象,产生XMLWriter对象
f. //6.将Document对象写入xml对象中
g.7.关闭XMLWriter对象
显示效果:

你可能感兴趣的:(java,xml,F#,J#,sun)