Dom4J操作

import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;

public class CreateXMLByDom4J
{
    public static void main(String args[])throws Exception
    {
        //创建一个空的文档对象
        Document doc=DocumentHelper.createDocument();
        
        //创建一个根元素,数值为emps
        Element root=doc.addElement("emps");
        //在root下添加一个元素employee,并在employee下添加name元素
        //设置其属性id为1,并设置name的值为"张飞"
        root.addElement("employee").addAttribute("id","1").addElement("name").addText("张飞");
        root.addElement("employee").addAttribute("id","2").addElement("name").addText("关羽");
        root.addElement("employee").addAttribute("id","3").addElement("name").addText("刘备");
        
        OutputFormat format=OutputFormat.createPrettyPrint();
        XMLWriter w=new XMLWriter(new FileOutputStream("emp.xml"),format);
        w.write(doc);
        w.close();
    }
}
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;

//删除名字叫Jack的用户
public class DelXMLByDom4J
{
    public static void main(String args[])throws Exception
    {
        SAXReader sax=new SAXReader();
        Document doc=sax.read("user.xml");
        //得到根元素坐标
        Element root=doc.getRootElement();
        
        List nodes=doc.selectNodes("//user");
        for (int i = 0; i<nodes.size(); i++) {
            Element el=(Element)nodes.get(i);
            if(el.elementText("username").equals("Jack"))
            {
                //必须在根元素的坐标点上删除元素才可以
                root.remove(el);
            }
        }
        OutputFormat format=OutputFormat.createPrettyPrint();
        XMLWriter writer=new XMLWriter(new FileOutputStream("user.xml"),format);
        writer.write(doc);
        writer.close();
    }
}
import org.dom4j.*;
import org.dom4j.io.*;
import java.util.*;
import java.io.*;

//将年龄为30的元素中的username设置为张三(说明对中文的操作也没有任何问题)
public class UpdateXMLByDom4J
{
    public static void main(String args[])throws Exception
    {
        //创建SAXReader的对象
        SAXReader sax=new SAXReader();
        //读入xml文件,并将其转换为Document类型
        Document doc=sax.read("user.xml");
        
        //利用XPath技术得到所有user节点
        /**
         * 必须导入jaxen.jar
         */
        List nodes=doc.selectNodes("//user");
        for (int i = 0; i<nodes.size(); i++) {
            //得到单个元素
            Element el=(Element)nodes.get(i);
            //判断其名字是否为Jack
            if(el.elementText("age").equals("30"))
            {
                //得到该元素下的age元素
                Element elAge=el.element("username");
                elAge.setText("张三");
            }
        }
        
        //将修改后的Document转换至硬盘
        
        //美化格式,生成的代码有缩进
         OutputFormat out=OutputFormat.createPrettyPrint();
         XMLWriter writer=new XMLWriter(new FileOutputStream("user.xml"),out);
         writer.write(doc);
         writer.close();
           
    }
}
import org.dom4j.*;
import org.dom4j.io.*;
import java.io.*;

public class AddXMLByDom4J
{
    public static void main(String args[]) throws Exception
    {
        SAXReader sax=new SAXReader();
        Document doc=sax.read("user.xml");
        
        Element root=doc.getRootElement();
        
        Element user=root.addElement("user");
        user.addElement("username").addText("李四");
        
        user.addElement("age").addText("21");
        
        OutputFormat out=OutputFormat.createPrettyPrint();
        XMLWriter writer=new XMLWriter(new FileOutputStream("user.xml"),out);
        writer.write(doc);
        writer.close();
    }
}
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;

/**
 * 取得最后一个元素的属性id值
 */
public class SelectIDByDom4J
{
    public static void main(String args[])throws Exception
    {
        SAXReader sax=new SAXReader();
        Document doc=sax.read("emp.xml");
        //得到根元素坐标
        Element root=doc.getRootElement();
        //得到所有employee
        List nodes=root.selectNodes("//employee");
        //得到元素个数
        int size=nodes.size();
        //定位到最后一个元素
        Element el=(Element)nodes.get(size-1);
        //得到该元素所有属性集合
        Iterator it=el.attributeIterator();
        //循环遍历
        while(it.hasNext())
        {
            //将集合中包含的元素转换为Attribute类型
            Attribute att=(Attribute)it.next();
            //取出里面的数值
            String value=att.getValue();
            System.out.println (value);
        }
        
    }
}
import org.dom4j.*;
import org.dom4j.io.*;
import java.io.*;
import java.util.*;

public class TestDOM4J
{
    public static void main(String args[])throws Exception
    {
        //得到所有用户信息
        SAXReader sax=new SAXReader();
        Document doc=sax.read("user.xml");
        
        //得到根元素
        Element root=doc.getRootElement();
        //得到所有子元素
        Iterator it=root.elementIterator();
        
        //循环查看每个元素的内容
        
        System.out.println ("用户名\t\t年龄");
        while(it.hasNext())
        {
            Element el=(Element)it.next();
            System.out.println(el.elementText("username")+"\t\t"+el.elementText("age"));
        }
    }
}

链接:https://pan.baidu.com/s/1lDvezym92uQGNPSf6iqyng

提取码:pgh4

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值