dom4j 读写xml文件



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

import
 org.dom4j.Document;
import
 org.dom4j.DocumentHelper;
import
 org.dom4j.Element;
import
 org.dom4j.io.OutputFormat;
import
 org.dom4j.io.SAXReader;
import
 org.dom4j.io.XMLWriter;

public class DOM4JTest 
{

    
/** *//** */

    
/** *//** */
    
/** *//** */
    
/** *//**
     * DOM4J读写XML示例
     * 
     * 
@param args
     * 
@throws
 Exception
     
*/

    
public static void main(String[] args) {
        
try 
{
            XMLWriter writer 
= null;// 声明写XML的对象

            SAXReader reader = new SAXReader();

            OutputFormat format 
=
 OutputFormat.createPrettyPrint();
            format.setEncoding(
"GBK");// 设置XML文件的编码格式


            String filePath 
= "d:\\student.xml";
            File file 
= new
 File(filePath);
            
if (file.exists()) 
{
                Document document 
= reader.read(file);// 读取XML文件

                Element root = document.getRootElement();// 得到根节点
                boolean bl = false;
                
for (Iterator i = root.elementIterator("学生"); i.hasNext();) 
{
                    Element student 
=
 (Element) i.next();
                    
if (student.attributeValue("sid").equals("001")) 
{
                        
// 修改学生sid=001的学生信息

                        student.selectSingleNode("姓名").setText("王五");
                        student.selectSingleNode(
"年龄").setText("25"
);

                        writer 
= new XMLWriter(new
 FileWriter(filePath), format);
                        writer.write(document);
                        writer.close();
                        bl 
= true
;
                        
break
;
                    }

                }

                
if (bl) {
                    
// 添加一个学生信息

                    Element student = root.addElement("学生");
                    student.addAttribute(
"sid""100"
);
                    Element sid 
= student.addElement("编号"
);
                    sid.setText(
"100"
);
                    Element name 
= student.addElement("姓名"
);
                    name.setText(
"嘎嘎"
);
                    Element sex 
= student.addElement("性别"
);
                    sex.setText(
""
);
                    Element age 
= student.addElement("年龄"
);
                    age.setText(
"21"
);

                    writer 
= new XMLWriter(new
 FileWriter(filePath), format);
                    writer.write(document);
                    writer.close();
                }

            }
 else {
                
// 新建student.xml文件并新增内容

                Document _document = DocumentHelper.createDocument();
                Element _root 
= _document.addElement("学生信息"
);
                Element _student 
= _root.addElement("学生"
);
                _student.addAttribute(
"sid""001"
);
                Element _id 
= _student.addElement("编号"
);
                _id.setText(
"001"
);
                Element _name 
= _student.addElement("姓名"
);
                _name.setText(
"灰机"
);
                Element _age 
= _student.addElement("年龄"
);
                _age.setText(
"18"
);

                writer 
= new XMLWriter(new
 FileWriter(file), format);
                writer.write(_document);
                writer.close();
            }

            System.out.println(
"操作结束! ");
        }
 catch (Exception e) {
            e.printStackTrace();
        }


    }

}

效果图

转自http://www.blogjava.net/biiau/archive/2008/09/24/231005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值