JDOM修改XML文档实例


import  java.io.FileInputStream;
import  java.io.FileNotFoundException;
import  java.io.FileOutputStream;
import  java.io.IOException;
import  java.util.Iterator;
import  java.util.List;

import  org.jdom.Document;
import  org.jdom.Element;
import  org.jdom.JDOMException;
import  org.jdom.input.SAXBuilder;
import  org.jdom.output.Format;
import  org.jdom.output.XMLOutputter;

public   class  JDOMparseExample1  {
    
    
public static void main(String[] args) 
        
throws IOException,FileNotFoundException,JDOMException {
        
//SAXBuilder使用一个第三方的SAX解析器,可以从不同的输入源来构造JDOM文档对象
        SAXBuilder builder=new SAXBuilder();
        Document doc
=builder.build(new FileInputStream("student.xml"));
        
//getRootElement()用于返回文档的根元素.
        Element element=doc.getRootElement();
        
//Element类中定义了获取子元素的方法,得到所有子元素
        List list=element.getChildren();
        
//iterator()方法返回以正确顺序在列表的元素上进行迭代的迭代器
        
//hasNext()方法判断如果仍有元素可以迭代,则返回 true
        for(Iterator i=list.iterator();i.hasNext();){
            
//next()方法返回迭代的下一个元素。重复调用此方法直到hasNext()方法返回 false,
            
//这将精确地一次性返回迭代器指向的集合中的所有元素
            Element current=(Element)i.next();
            
//判断姓名子元素的值是否为张三
            if(current.getChildText("姓名").equals("张三")){
                
//删除年龄子元素
                current.removeChild("年龄");
                
//创建年龄子元素
                Element age=new Element("年龄");
                
//设置年龄子元素的值
                age.setText("23");
                
//将年龄子元素添加到父元素中
                current.addContent(age);
            }

            
//判断姓名子元素的值是否为李四
            if(current.getChildText("姓名").equals("李四")){
                
//删除年龄子元素
                current.removeChild("年龄");
                
//创建年龄子元素
                Element age=new Element("年龄");
                
//设置年龄子元素的值
                age.setText("25");
                
//将年龄子元素添加到父元素中
                current.addContent(age);
            }

        }

        Format format
=Format.getCompactFormat();
        
//设置文档字符编码
        format.setEncoding("GB18030");
        
//设置缩进字符串
        format.setIndent("  ");
        
//XMLOutputter类提供了将JDOM树输出为字节流的能力
        XMLOutputter XMLOut=new XMLOutputter(format);
        
//输出到文件
        XMLOut.output(doc,new FileOutputStream("student.xml"));
        System.out.println(
"执行成功");
    }


}

 

以下是XML文档内容:

 

<? xml version="1.0" encoding="GB18030" ?>
< 学生花名册 >
  
< 学生 性别="男" >
    
< 姓名 > 李四 </ 姓名 >
    
< 电话 > 6287555 </ 电话 >
    
< 年龄 > 25 </ 年龄 >
  
</ 学生 >
  
< 学生 性别="男" >
    
< 姓名 > 张三 </ 姓名 >
    
< 电话 > 8273425 </ 电话 >
    
< 年龄 > 23 </ 年龄 >
  
</ 学生 >
</ 学生花名册 >

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值