课时31: dom4j的简介
dom4j是一个组织,针对xml解析提供了解析器dom4j。
dom4j不是javase的一部分,想要使用第一步需要导入dom4j提供的jar包
创建文件夹——复制jar包到该文件夹——build path——add to buildpath
1、得到document
SAXReader reder=new SAXReader ();
Document document=reder.read(url);
2、document的父接口为Node,如果在document找不到想要方法,可以去父接口找
课时32: 使用dom4j实现查询xml操作
需求:查询全部或第一个或第二个name元素的值;、
public static void selectNmae() throws Exception{
//1 创建解析器
SAXReader saxreder=new SAXReader();
//2 得到document
Document document=saxreder.read("src/1.xml");
//3 得到根节点
Element telement =document.getRootElement();
/**
* 得到全部name
*/
//4 得到p1
List<Element> list =telement.elements("p1");
//5 遍历list
System.out.println("所有name:");
for(Element element :list){
//element 是每一个p1的元素
//6 得到第一个name
Element name1=element.element("name");
//7 得到name的值
String nametext1=name1.getText();
System.out.println(nametext1);
}
/**
* 得到第一个name
*/
Element listp1=telement.element("p1");
Element name1=listp1.element("name");
String nametext1=name1.getTextTrim();
System.out.println("第一个name:"+nametext1);
/**
*得到第二个name
*/
Element p2=list.get(1);
Element name2=p2.element("name");
String nametext2=name2.getText();
System.out.println("第二个name:"+nametext2);
}
课时33: 使用dom4j实现在末尾添加节点的操作
需求:在第一个p1添加nan
public static void addsex() throws DocumentException, IOException{
//1 创建解析器
SAXReader saxreder=new SAXReader();
//2 得到document
Document document=saxreder.read("src/1.xml");
//3 得到根节点
Element telement =document.getRootElement();
//得到第一个p1
Element listp1=telement.element("p1");
//添加元素
Element sex=listp1.addElement("sex");
//添加文本
sex.setText("nan");
//回写
//格式化
OutputFormat format=OutputFormat.createPrettyPrint();
//压缩
//OutputFormat format=OutputFormat.createCompactFormat();
XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
tXMLWriter.write(document);
tXMLWriter.close();
}
课时34: 使用dom4j实现在在特定位置添加节点的操作
需求:在第一个age之前添加lanzhouligong
public static void addindex() throws Exception{
//1 创建解析器
SAXReader saxreder=new SAXReader();
//2 得到document
Document document=saxreder.read("src/1.xml");
//3 得到根节点
Element root =document.getRootElement();
//得到第一个p1
Element listp1=root.element("p1");
/**获取p1下面的所有元素
* element()方法返回list集合
* 使用list里面的方法,在特定位置添加元素
* add(int index, E element);index为下标,从零开始,第二个为添加的元素
*/
List<Element> list=listp1.elements();
//创建需要添加的元素
Element tSchool=DocumentHelper.createElement("school");
tSchool.setText("lanzhouligong");
list.add(1,tSchool);//特定位置添加
//回写
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
tXMLWriter.write(document);
tXMLWriter.close();
}
课时35: dom4j里面封装方法的操作
课时36: 使用dom4j实现修改的操作
需求:修改第一个p1的age值为99
public static void updateAge() throws DocumentException, IOException{
//1 创建解析器
SAXReader saxreder=new SAXReader();
//2 得到document
Document document=saxreder.read("src/1.xml");
//3 得到根节点
Element root =document.getRootElement();
//得到第一个p1
Element listp1=root.element("p1");
Element age=listp1.element("age");
age.setText("30");
//回写
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
tXMLWriter.write(document);
tXMLWriter.close();
}
课时37: 使用dom4j实现删除节点的操作
public static void deleteAge() throws DocumentException, IOException{
//1 创建解析器
SAXReader saxreder=new SAXReader();
//2 得到document
Document document=saxreder.read("src/1.xml");
//3 得到根节点
Element root =document.getRootElement();
//得到第一个p1
Element listp1=root.element("p1");
Element age=listp1.element("age");
listp1.remove(age);
//回写
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter tXMLWriter=new XMLWriter(new FileOutputStream("src/1.xml"),format);
tXMLWriter.write(document);
tXMLWriter.close();
}
课时38: 使用dom4j实现获取属性值的操做
public static void deleteAge() throws DocumentException, IOException{
//1 创建解析器
SAXReader saxreder=new SAXReader();
//2 得到document
Document document=saxreder.read("src/1.xml");
//3 得到根节点
Element root =document.getRootElement();
//得到第一个p1
Element listp1=root.element("p1");
System.out.println(listp1.attributeValue("id"));
}