您的位置:首页 > 编程语言 > Java开发

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

2017-09-25 17:10 399 查看
/*
* 使用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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐