Java XML解析 之 读取,添加,删除,修改 2

http://www.verejava.com/?id=16995144631335

下载依赖 jar 包   

dom4j-1.6.1.jar 
jaxen-1.1-beta-6.jar 


package com.xml;

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

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class TestAttribueXml
{
    /**
     * 遍历
     * @param args
     */
    public static void testRead()
    {
        SAXReader reader=new SAXReader();
        try
        {
            Document doc=reader.read(new File("student.xml"));
            List<Node> nodeList=doc.selectNodes("/data/student");
            for(Node node:nodeList)
            {
                System.out.println(node.getName()+":"+node.valueOf("@name")+","+node.valueOf("@age"));
            }
        } catch (DocumentException e)
        {
            e.printStackTrace();
        }
    }
    
    /**
     * 添加
     * @param args
     */
    public static void testAdd()
    {
        SAXReader reader=new SAXReader();
        XMLWriter writer=null;
        try
        {
            Document doc=reader.read(new File("student.xml"));
            Element root=doc.getRootElement();
            Element element=root.addElement("student");
            element.addAttribute("name", "李浩");
            element.addAttribute("age","23");
            
            OutputFormat format=OutputFormat.createPrettyPrint();
            writer=new XMLWriter(new FileWriter("student.xml"),format);
            writer.write(doc);
            writer.flush();
        } catch (DocumentException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                writer.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }
    /**
     * 修改
     * @param args
     */
    public static void testUpdate()
    {
        SAXReader reader=new SAXReader();
        XMLWriter writer=null;
        try
        {
            Document doc=reader.read(new File("student.xml"));
            List<Element> elementList=doc.selectNodes("/data/student");
            for(Element element:elementList)
            {
                String name=element.attributeValue("name");
                if("李军".equals(name))
                {
                    element.setAttributeValue("age", "21");
                }
            }
            
            OutputFormat format=OutputFormat.createCompactFormat();
            writer=new XMLWriter(new FileWriter("student.xml"),format);
            writer.write(doc);
            writer.flush();
        } catch (DocumentException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                writer.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }
    /**
     * 修改
     * @param args
     */
    public static void testUpdate2()
    {
        SAXReader reader=new SAXReader();
        XMLWriter writer=null;
        try
        {
            Document doc=reader.read(new File("student.xml"));
            Element root=doc.getRootElement();
            Iterator<Element> iter=root.elementIterator();
            while(iter.hasNext())
            {
                Element element=iter.next();
                String name=element.attributeValue("name");
                if("李军".equals(name))
                {
                    element.setAttributeValue("age", "24");
                }
            }
            
            OutputFormat format=OutputFormat.createCompactFormat();
            writer=new XMLWriter(new FileWriter("student.xml"),format);
            writer.write(doc);
            writer.flush();
        } catch (DocumentException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                writer.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }
    
    /**
     * 删除
     * @param args
     */
    public static void testDelete()
    {
        SAXReader reader=new SAXReader();
        XMLWriter writer=null;
        try
        {
            Document doc=reader.read(new File("student.xml"));
            List<Element> elementList=doc.selectNodes("/data/student");
            for(Element element:elementList)
            {
                String name=element.attributeValue("name");
                if("李军".equals(name))
                {
                    element.getParent().remove(element);
                    break;
                }
            }
            
            OutputFormat format=OutputFormat.createCompactFormat();
            writer=new XMLWriter(new FileWriter("student.xml"),format);
            writer.write(doc);
            writer.flush();
        } catch (DocumentException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                writer.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args)
    {
        testDelete();
        testRead();
    }
}





student.xml 

<?xml version="1.0" encoding="UTF-8"?>
<data><student name="张山" age="22"/><student name="李浩" age="23"/></data>

http://www.verejava.com/?id=16995144631335

猜你喜欢

转载自www.cnblogs.com/verejava/p/9232124.html
今日推荐