一、配置环境
在http://www.jdom.org 下载jdom-X.X.zip包(目前最新的为jdom-1.1.zip),解压后进入build文件夹将看到一个名为jdom.jar的包,这个就是jdom的类包了,将它加到你的classpath里即可。
二、源代码
- package com.xml;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.PrintWriter;
- 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.Format;
- import org.jdom.output.XMLOutputter;
- public class test {
- //创建XML
- public void BuildXMLDoc() throws IOException, JDOMException {
- // 创建根节点 root;
- Element root = new Element("list");
- // 根节点添加到文档中;
- Document Doc = new Document(root);
- // 此处 for 循环可替换成 遍历 数据库表的结果集操作;
- for (int i = 0; i < 3; i++) {
- // 创建节点 user;
- Element elements = new Element("user");
- // 给 user 节点添加属性 id;
- elements.setAttribute("id", "" + i);
- // 给 user 节点添加子节点并赋值;
- elements.addContent(new Element("name").setText("潘永刚"));
- elements.addContent(new Element("age").setText("28"));
- elements.addContent(new Element("email").setText("pygsky@126.com"));
- // 给父节点list添加user子节点;
- root.addContent(elements);
- }
- //定义输出
- XMLOutputter XMLOut = new XMLOutputter();
- //设置格式
- Format format = Format.getPrettyFormat();
- format.setEncoding("gb2312"); //设置xml文件的字符为gb2312
- format.setIndent(" "); //设置xml文件的缩进为4个空格
- XMLOut.setFormat(format);
- // 输出 user.xml 文件;
- XMLOut.output(Doc, new FileOutputStream("user.xml"));
- }
- @SuppressWarnings("unchecked")
- //读XML节点数据
- public void ReadXMLDoc() throws IOException, JDOMException {
- /*************将user.xml个别节点读出显示*****************/
- File fn = new File("user.xml");
- Document doc = null;
- //建立构造器
- SAXBuilder sb = new SAXBuilder();
- //判断文件是否存在
- if (fn.exists()) {
- try {
- //读入指定文件
- doc = sb.build(new FileInputStream("user.xml"));
- } catch (Exception e) {
- System.out.println(e.getMessage());
- }
- //获得根结点
- Element root = doc.getRootElement();
- //将根结点下的所有子节点放入List中
- List list = root.getChildren();
- for (int i = 0; i < list.size(); i++) {
- System.out.println("-----------------------");
- //取得节点实例
- Element item = (Element)list.get(i);
- //取得当前节点的子节点
- String sid = item.getAttribute("id").getValue();//取得属性值
- System.out.println("id----> " + sid);
- Element Name = item.getChild("name");
- String sname = Name.getText();// 取得当前节点的值
- System.out.println("Name---->" + sname);
- }
- } else {
- System.out.println("Not found child element!");
- }
- /* 将user.xml内容在控制台显示
- //建立构造器
- SAXBuilder builder = new SAXBuilder();
- Document doc = null;
- //读入指定文件
- doc = builder.build(new FileInputStream("user.xml"));
- XMLOutputter fmt = new XMLOutputter();
- Format format = Format.getPrettyFormat();
- format.setEncoding("gb2312"); //设置xml文件的字符为gb2312
- format.setIndent(" "); //设置xml文件的缩进为4个空格
- fmt.setFormat(format);
- PrintWriter out=new PrintWriter(System.out); //不加 中文会乱码
- fmt.output(doc, out);*/
- }
- @SuppressWarnings("unchecked")
- //在XML文件尾部追加
- public void AddXMLDoc() throws IOException, JDOMException {
- File fn = new File("user.xml");
- Document doc = null;
- SAXBuilder sb = new SAXBuilder();
- //如果文件存在
- if(fn.exists()){
- try{
- doc = sb.build(new FileInputStream("user.xml"));
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- Element root = doc.getRootElement();
- if (root.getContentSize() > 0) {
- List list = root.getChildren();
- Element elements = new Element("user");
- // 给 user 节点添加属性 id;
- elements.setAttribute("id", "" + list.size());
- elements.addContent(new Element("name").setText("刘德华"));
- elements.addContent(new Element("age").setText("48"));
- elements.addContent(new Element("email").setText("AndyLiu@126.com"));
- // 给父节点list添加user子节点;
- root.addContent(elements);
- // 设置输出格式
- Format f = Format.getPrettyFormat();
- f.setIndent(" ");
- f.setEncoding("gb2312");
- XMLOutputter output = new XMLOutputter(f);
- try {
- output.output(doc, new FileOutputStream("user.xml"));
- } catch (Exception e) {
- System.out.println(e.getMessage());
- }
- }
- //如果文件不存在
- else {
- System.out.println("Not found child element!");
- }
- }
- else
- {
- System.out.println("找不到指定的文件!");
- }
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- try {
- test j2x = new test();
- //j2x.BuildXMLDoc(); //创建
- //j2x.AddXMLDoc(); //追加
- j2x.ReadXMLDoc();//读取
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
三、XML文件操作结果
1、创建的user.xml
- <?xml version="1.0" encoding="gb2312"?>
- <list>
- <user id="0">
- <name>潘永刚</name>
- <age>28</age>
- <email>pygsky@126.com</email>
- </user>
- <user id="1">
- <name>潘永刚</name>
- <age>28</age>
- <email>pygsky@126.com</email>
- </user>
- <user id="2">
- <name>潘永刚</name>
- <age>28</age>
- <email>pygsky@126.com</email>
- </user>
- </list>
2追加后的user.xml
- <?xml version="1.0" encoding="gb2312"?>
- <list>
- <user id="0">
- <name>潘永刚</name>
- <age>28</age>
- <email>pygsky@126.com</email>
- </user>
- <user id="1">
- <name>潘永刚</name>
- <age>28</age>
- <email>pygsky@126.com</email>
- </user>
- <user id="2">
- <name>潘永刚</name>
- <age>28</age>
- <email>pygsky@126.com</email>
- </user>
- <user id="3">
- <name>刘德华</name>
- <age>48</age>
- <email>AndyLiu@126.com</email>
- </user>
- </list>
3、查询在控制台显示的结果
-----------------------
id----> 0
Name---->潘永刚
-----------------------
id----> 1
Name---->潘永刚
-----------------------
id----> 2
Name---->潘永刚
-----------------------
id----> 3
Name---->刘德华
四、其他相关内容帖子链接
http://hi.baidu.com/bluesky0205/blog/item/aaac9ad49752e401a08bb74a.html
http://www.java3z.com/cwbwebhome/article/article2/2228.html?id=692
http://xiaobian.javaeye.com/blog/monthblog/2008-01?show_full=true
本文介绍如何利用JDOM库在Java环境中创建、读取和追加XML文件内容。通过具体代码示例展示了如何构建XML文档、读取XML节点数据以及在现有XML文件末尾追加新的节点。
1021

被折叠的 条评论
为什么被折叠?



