jdom处理xml文件
就拿实现某些功能说明一下吧
xml文件如下
xml文件如下
<?xml version="1.0"?>
<studentData>
<student id="001">
<studentName>李小龙</studentName>
<studentAge>21</studentAge>
<studentAdd>香港</studentAdd>
</student>
<student id="002">
<studentName>成龙</studentName>
<studentAge>23</studentAge>
<studentAdd>山东</studentAdd>
</student>
</studentData>
先实现一个在studentData下在加一个学生,id="003"...
<studentData>
<student id="001">
<studentName>李小龙</studentName>
<studentAge>21</studentAge>
<studentAdd>香港</studentAdd>
</student>
<student id="002">
<studentName>成龙</studentName>
<studentAge>23</studentAge>
<studentAdd>山东</studentAdd>
</student>
</studentData>
//其实程序一共分4部
//1.解析xml文件,获得document文档对象模型
//2.建立子元素及属性和设置值
//3.加到根节点
//4.保存到文件
//第1部-解析xml文件 并返回document
public Document GetXml(String url){
//在新版本中DOMBuilder已经Deprecated掉
//DOMBuilder.builder(url),用SAX效率会比较快。
SAXBuilder sb = new SAXBuilder();
Document doc = null;
try {
//url:文件绝对路径
doc = sb.build(url);
} catch (JDOMException ex) {
ex.printStackTrace();
}
return doc;
}
//第2部:建立子元素及属性和设置值
public static Element AddValues(String id, String values, String name, String sex,
String birthday, String sore, String message) {
//创建节点student
Element el_node = new Element("student");
//创建属性 给于值
Attribute at_stu = new Attribute(id, values);
//给student节点添加属性
el_node.addAttribute(at_stu);
//创建子节点studentName
Element child_name = new Element("studentName");
//给studentName节点添加文本
child_name.addContent(name);
el_node.addContent(child_name);
//将studentName添加到student节点
Element child_sex = new Element("studentSex");
//创建子节点studentSex
child_sex.addContent(sex);
//给studentSex添加文本
el_node.addContent(child_sex);
//将studentSex添加到student节点
Element child_birthday = new Element("studentBirthday");
child_birthday.addContent(birthday);
el_node.addContent(child_birthday);
Element child_sore = new Element("studentSore");
child_sore.addContent(sore);
el_node.addContent(child_sore);
Element child_message = new Element("studentMessage");
child_message.addContent(message);
el_node.addContent(child_message);
//返回一个根节点的子节点
return el_node;
}
//最后写个主函数调用方法(前几步)
public static void main(String[] args) throws IOException {
testXMlParse p = new testXMlParse();
Document doc = p.GetXml("E:\\student.xml");
//得到跟节点
Element root = doc.getRootElement();
//把子节点加到根节点
root.addContent(AddValues("id","S109", "李小龙", "男", "1976.4.3","91", "该学员只有oracle技术"));
//添加到跟节点
XMLOutputter out = new XMLOutputter();
File file = new File("E:\\student.xml");
FileOutputStream stream = new FileOutputStream(file);
//设置格式
out.setNewlines(true);
//设置缩进
out.setIndent(true);
//保存到文件
out.output(doc,stream);
//out.output(doc,System.out);
}
}
//1.解析xml文件,获得document文档对象模型
//2.建立子元素及属性和设置值
//3.加到根节点
//4.保存到文件
//第1部-解析xml文件 并返回document
public Document GetXml(String url){
//在新版本中DOMBuilder已经Deprecated掉
//DOMBuilder.builder(url),用SAX效率会比较快。
SAXBuilder sb = new SAXBuilder();
Document doc = null;
try {
//url:文件绝对路径
doc = sb.build(url);
} catch (JDOMException ex) {
ex.printStackTrace();
}
return doc;
}
//第2部:建立子元素及属性和设置值
public static Element AddValues(String id, String values, String name, String sex,
String birthday, String sore, String message) {
//创建节点student
Element el_node = new Element("student");
//创建属性 给于值
Attribute at_stu = new Attribute(id, values);
//给student节点添加属性
el_node.addAttribute(at_stu);
//创建子节点studentName
Element child_name = new Element("studentName");
//给studentName节点添加文本
child_name.addContent(name);
el_node.addContent(child_name);
//将studentName添加到student节点
Element child_sex = new Element("studentSex");
//创建子节点studentSex
child_sex.addContent(sex);
//给studentSex添加文本
el_node.addContent(child_sex);
//将studentSex添加到student节点
Element child_birthday = new Element("studentBirthday");
child_birthday.addContent(birthday);
el_node.addContent(child_birthday);
Element child_sore = new Element("studentSore");
child_sore.addContent(sore);
el_node.addContent(child_sore);
Element child_message = new Element("studentMessage");
child_message.addContent(message);
el_node.addContent(child_message);
//返回一个根节点的子节点
return el_node;
}
//最后写个主函数调用方法(前几步)
public static void main(String[] args) throws IOException {
testXMlParse p = new testXMlParse();
Document doc = p.GetXml("E:\\student.xml");
//得到跟节点
Element root = doc.getRootElement();
//把子节点加到根节点
root.addContent(AddValues("id","S109", "李小龙", "男", "1976.4.3","91", "该学员只有oracle技术"));
//添加到跟节点
XMLOutputter out = new XMLOutputter();
File file = new File("E:\\student.xml");
FileOutputStream stream = new FileOutputStream(file);
//设置格式
out.setNewlines(true);
//设置缩进
out.setIndent(true);
//保存到文件
out.output(doc,stream);
//out.output(doc,System.out);
}
}