Dom4j进行XML的解析

一:将dom4j的jar包导入目标工程
二:`public class Dom4jTest {
public static void main(String[] args) throws Exception {

    try {
        run5();
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

/**
 *  查询,获取作者的文本内容
 * 
 *  获取第二个节点的作者的文本内容
 * @throws DocumentException 
 */
public static void run1() throws DocumentException{
    //获取解析器对象
    SAXReader reader=new SAXReader();
    //解析,获取document对象
    Document document = reader.read("src/book4.xml");
    //获取根节点
    Element rootElement = document.getRootElement();
    //获取根节点的所有子节点的集合
    List elements = rootElement.elements();
    Element book2 = (Element) elements.get(1);

    Element author = book2.element("作者");

    String text = author.getText();
    System.out.println(text);
}

//添加子节点,注意回写
public static void run2() throws Exception{

    SAXReader reader=new SAXReader();

    Document document = reader.read("src/book4.xml");

    Element root = document.getRootElement();

    List books = root.elements("书");

    Element book2 = (Element) books.get(1);

    book2.addElement("猫").setText("我是猫");//此时还都只是在内存中的操作


    //接下来进行回写的操作
    //创建一个漂亮的格式
    OutputFormat format=OutputFormat.createPrettyPrint();

    org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream("src/book4.xml"),format);

    writer.write(document);

    writer.close();


}

public static void run3() throws Exception{
    SAXReader reader=new SAXReader();

    Document document = reader.read("src/book4.xml");

    Element rootElement = document.getRootElement();

    Element book2 = (Element) rootElement.elements("书").get(1);


    List<Element> elements = book2.elements();

    //创建一个元素对象
    Element dog = DocumentHelper.createElement("狗");
    dog.setText("大狗");

    elements.add(1,dog);

    //回写之前添加漂亮的格式
    OutputFormat format=OutputFormat.createPrettyPrint();


    org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream("src/book4.xml"),format);
    writer.write(document);
    writer.close();


}

//删除子节点
public static void run5() throws Exception{
    SAXReader reader=new SAXReader();

    Document document = reader.read("src/book4.xml");

    Element rootElement = document.getRootElement();

    //获取猫
    Element book2 = (Element) rootElement.elements("书").get(1);
    Element cat = book2.element("猫");
    //获取父节点
    //cat.getParent();
    book2.remove(cat);
    //回写之前添加漂亮的格式
    OutputFormat format=OutputFormat.createPrettyPrint();


    org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream("src/book4.xml"),format);
    writer.write(document);
    writer.close();
}

}
`

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值