javawebday09(dom4j修改节点删除节点获取属性 xpath)

来源:互联网 发布:c语言循环移位 编辑:程序博客网 时间:2024/06/05 19:31
/* * 使用dom4j实现修改节点的操作 *  修改第一个head下面的age元素的值<age>30</age> *      1、得到document *      2、得到根节点 然后得到第一个head元素 *      3、得到第一个head下面的age *          element("")方法 *      4、修改值30 *          使用setText("文本内容")方法 *      5、回写xml * 使用dom4j实现删除节点的操作 *      删除第一个head下面的titile元素     *  *          1、得到document *          2、得到根节点 *          3、得到第一个head标签 *          4、得到第一个head下面的title元素 *          5、删除(使用head删除title) *              得到school的父节点 *                  第一种直接得到head *                  使用方法 getParent方法得到 *              删除操作 *                  在head上面执行remove方法删除节点 *          6、回写xml * 使用dom4j获取属性的操作 *  获取第一个head里面的属性id的值 *  步骤 *      1、得到document *      2、得到根节点 *      3、得到第一个head元素 *      4、得到head里面的属性值 *          attributeValue("id"); *          在head上面执行这个方法 里面的参数是属性名称 *       * 使用dom4j支持xpath的操作 *  可以直接获取到某个元素 *  第一种形式 *      /aa/bb/cc 表示一层一层的 aa下面 bb下面的cc *  第二种形式 *      //bbb 表示和这个名称相同表示只要名称是bbb都得到 *  第三种形式 *      /* 所有元素 *  第四种形式 *      bbb[1] 表示第一个bbb元素 *      bbb[last()] 表示最后一个bbb元素 *  第五种形式 *      //bb[@id] 表示只要bb元素上面有id属性 都得到 *  第六种形式 *      //bbb[@id='b1']  表示元素名称是bbb 在bbb上面有id属性 并且id属性是b1    */
public class TestDom4j02 {    public static String path = "src/ee/11.xml";    public static void main(String[] args) throws Exception {        //changeAge();//      deleteTitle();        getAttr();    }    //获取第一个head里面的属性 id的值    public static void  getAttr() throws Exception {        /*         * 1、得到document         * 2、得到根节点         * 3、得到第一个head         * 4、得到head里面的属性值         */        //得到document        Document document = domUtils.document(path);        //得到根节点        Element root = document.getRootElement();        //得到第一个head元素        Element head = root.element("head");        //得到head里面的属性值        String value = head.attributeValue("id");        System.out.println(value);    }    //删除第一个head下面的title元素    private static void deleteTitle() throws Exception {        /*         * 1、得到document         * 2、得到根节点         * 3、得到第一个head标签         * 4、得到第一个head下面的title元素         * 5、删除(使用head删除title         * 6、回写xml         */        //得到document ctrl shift o 快速导包        Document document = domUtils.document(path);        //得到根节点        Element root = document.getRootElement();        //得到第一个head元素        Element head = root.element("head");        //得到head下面的title元素        Element title = head.element("title");        //删除title元素        //通过父节点删除        //获取父节点的方法 getParent()//      Element parent = title.getParent();//      parent.remove(title);        head.remove(title);        //回写xml        OutputFormat of = OutputFormat.createPrettyPrint();        XMLWriter xmlw = new XMLWriter(new FileOutputStream("2.xml"),of);        xmlw.write(document);        xmlw.close();    }    //修改第一个head下面的age元素的值<age>30</age>    private static void changeAge() throws Exception {        /*         * 1、得到document         * 2、得到根节点 然后得到第一个head元素         * 3、得到第一个head下面的age         * 4、修改值是30         * 5、回写xml         */        //得到document        SAXReader saxr = new SAXReader();        Document document = saxr.read("src/ee/11.out.xml");        //得到根节点        Element root = document.getRootElement();        //得到第一个head        Element head =  root.element("head");        //得到head下面的age        Element age = head.element("age");        //修改age的值        age.setText("33");        //回写xml        OutputFormat of = OutputFormat.createPrettyPrint();         XMLWriter xmlw  = new XMLWriter(new FileOutputStream("1.xml"),of);        xmlw.write(document);        xmlw.close();    }}

domutil

public class domUtils {    //java是强类型的语言 需要赋予类型    public static Document document(String path) throws Exception {        SAXReader saxr = new SAXReader();        Document document = saxr.read(path);        return document;    }    public static XMLWriter xmlw(String path) throws UnsupportedEncodingException, FileNotFoundException {        OutputFormat of = OutputFormat.createPrettyPrint();        XMLWriter xmlw = new XMLWriter(new FileOutputStream(path),of);        return xmlw;    }}
原创粉丝点击