dom4j

一、dom4j常用操作类:

  1、SAXReader解析器:org.dom4j.io.SAXReader包;

    构造:new SAXReader();

    核心方法:获取Doucment对象:Document read(File file);

  2、Document类:org.dom4j.Document包;

    核心方法:获取根元素:Element getRootElement();

  3、Element类:org.dom4j.Element包;

    核心方法:

    (1)获取元素节点集合:List<Element> elements(["ele"]);

    (2)获取元素节点:Element element("ele");

    (3)获取属性节点集合:List<Attribute> attributes(["ele"]);

    (4)获取节点名:String getName();

    (5)获取当前节点文本值:String getText();

    (6)获取当前节点下所有的文本值:String getStringValue();

    -------------------

    (1)添加元素:addElement("name");

    (2)设置文本:setText("text");

  4、Attribute类:

    核心方法:

    (1)获取属性节点名:String getName();

    (2)获取属性节点值:String getValue();

二、dom4j读取元素:

  //导入jar包;

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<books>
    <book>
        <number>001</number>
        <name>论语</name>
        <author>孔子</author>
    </book>

    <book>
        <number>002</number>
        <name>西游记</name>
        <author>吴承恩</author>
    </book>

    <book>
        <number>003</number>
        <name>时间简史</name>
        <author>霍金</author>
    </book>
</books>
public class Test {
    public static void main(String[] args) throws Exception {
        // 1、创建SAXReader解析器
        SAXReader reader = new SAXReader();
        // 2、获取Document对象
        Document doc = reader.read("E:\\JavaProject\\review\\src\\dom\\Book.xml");
        // 3、获取根元素
        Element root = doc.getRootElement();
        // 4、根据指定名称获取根元素下所有元素
        List<Element> books = root.elements("book");
        // 5、遍历元素
        for (Element book : books) {
            Element nameEle = book.element("name");
            System.out.println(nameEle.getText());
        }
    }
}

三、dom4j添加元素:

public class Test {
    public static void main(String[] args) throws Exception {
        // 1、创建SAXReader解析器
        SAXReader reader = new SAXReader();
        // 2、获取Document对象
        Document doc = reader.read("E:\\JavaProject\\review\\src\\dom\\Book.xml");
        // 3、获取根元素
        Element root = doc.getRootElement();
        // 4、给根元素添加元素和属性,并返回添加的元素
        Element newEle = root.addElement("book").addAttribute("id", "newId");
        // 5、在新的元素中添加子元素和元素值;
        newEle.addElement("number").setText("000");
        newEle.addElement("name").setText("新书");
        newEle.addElement("author").setText("java");
        // 6、同步方法1:写出到本地xml,注意编码
        //Writer out = new OutputStreamWriter(new FileOutputStream("E:\\JavaProject\\review\\src\\dom\\Book.xml"),"UTF-8");
        //doc.write(out);
        //out.close();
        // 6、同步方法2:格式化代码再输出;
        OutputFormat format = OutputFormat.createPrettyPrint();
        Writer out = new OutputStreamWriter(new FileOutputStream("E:\\JavaProject\\review\\src\\dom\\Book.xml"), "UTF-8");
        XMLWriter writer = new XMLWriter(out, format);
        writer.write(doc);
        out.close();
    }
}

 

posted @ 2019-08-04 22:31  开拖拉机的拉风少年  阅读(416)  评论(0编辑  收藏  举报