XML解析之JDOM的写入,读写,删除,修改
目录
1.使用JDOM方式解析 写入xml数据
注意:需要导入jdom.jar (xml解析的jar包.rar下载 || 百度找)
package com.xml.JDOM;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
/**
* 使用JDOM方式解析 写入xml数据
*
* @author 小贺
*
*/
public class WriteXML {
public static void main(String[] args) throws FileNotFoundException, IOException {
//创建文件对象
Document doc=new Document();
//创建元素节点
Element root=new Element("root");
Element stu=new Element("student");
Element name=new Element("name");
Element sex=new Element("sex");
Element age=new Element("age");
//设置元素节点之间的关系
root.addContent(stu);
stu.addContent(name);
stu.addContent(sex);
stu.addContent(age);
doc.addContent(root);
//封装数据
name.setText("张三");
sex.setText("女");
age.setText("18");
//设置节点属性 以及属性值
stu.setAttribute("stuno","1");
//将文档对象写入到xml文件中
XMLOutputter xo=new XMLOutputter();
xo.output(doc,new FileOutputStream(new File("D:/web.xml")));
System.out.println("成功");
}
}
2.使用JDOM方式解析 读取xml数据
package com.xml.JDOM;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
/**
* 使用jdom方法解析 读取xml数据
* @author 小贺
*
*/
public class ReadXML {
public static void main(String[] args) throws JDOMException, IOException {
//创建解析器
SAXBuilder sb=new SAXBuilder();
//调用build方法解析xml文件,得到文档对象
Document doc= sb.build(new File("D:/web.xml"));
//根据文档对象拿到根节点
Element root = doc.getRootElement();
//根据根节点得到下面的子节点
List<Element> list = root.getChildren();
//遍历
for (Element element : list) {
System.out.println(element.getAttributeValue("stuno")+"\t"+element.getChildText("name")+"\t"+element.getChildText("sex")+"\t"+element.getChildText("age"));
}
}
}
3…使用JDOM方式解析 删除xml数据
package com.xml.JDOM;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
/**
* 利用jdom删除xml
*
* @author 小贺
*
*/
public class RemoveXML {
public static void main(String[] args) throws JDOMException, IOException {
//创建解析器
SAXBuilder builder=new SAXBuilder();
//调用build方法解析xml文件 ,得到文档对象
Document doc=builder.build(new File("D:/web.xml"));
//根据文档对象 拿到根节点
Element root=doc.getRootElement();
//根据根节点得到下面的子节点
List<Element> list=root.getChildren();
for (Element stu : list) {
//当stuno为1时,干掉web.xml里面的内容
if("1".equals(stu.getAttributeValue("stuno"))){
root.removeContent(stu);
break;
}
}
//将文档对象写入到xml文件中
XMLOutputter xo=new XMLOutputter();
xo.output(doc,new FileOutputStream(new File("D:/web.xml")));
}
}
4.使用JDOM方式解析 修改xml数据
package com.xml.JDOM;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
/**
* 利用jdom修改webxml里面的数据
*
* @author 小贺
*
*/
public class UpdataXML {
public static void main(String[] args) throws FileNotFoundException, IOException, JDOMException {
//创建解析器
SAXBuilder builder=new SAXBuilder();
//调用build方法解析xml文件 ,得到文档对象
Document doc=builder.build(new File("D:/web.xml"));
//根据文档对象 拿到根节点
Element root=doc.getRootElement();
//根据根节点得到下面的子节点
List<Element> list=root.getChildren();
for (Element stu : list) {
if("1".equals(stu.getAttributeValue("stuno"))){
stu.getChild("name").setText("小贺");
stu.getChild("sex").setText("男");
stu.getChild("age").setText("20");
}
}
//将文档对象写入到xml文件中
XMLOutputter xo=new XMLOutputter();
xo.output(doc,new FileOutputStream(new File("E:/stu.xml")));
}
}