环境接上例:http://blog.csdn.net/kunshan_shenbin/archive/2008/11/08/3255478.aspx
测试代码如下:
- package demo;
- 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.Format;
- import org.jdom.output.XMLOutputter;
- import org.jdom.xpath.XPath;
- public class TestJdom {
- public static void main(String[] args) {
- try {
- TestJdom javaXML = new TestJdom();
- javaXML.BuildXMLDoc();
- javaXML.UpdateXMLDoc();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- //创建新的xml文件
- public void BuildXMLDoc() throws IOException, JDOMException {
- // 创建根节点 list;
- Element root = new Element("list");
- // 根节点添加到文档中;
- Document doc = new Document(root);
- // 此处 for 循环可替换成 遍历 数据库表的结果集操作;
- for (int i = 0; i < 5; i++) {
- // 创建节点 user;
- Element element = new Element("company");
- // 给 company 节点添加属性 id;
- element.setAttribute("id", "" + i);
- // 给 company 节点添加子节点并赋值
- // new Element("company_name")中的 "company_name" 替换成表中相应字段,setText("name")中 "name 替换成表中记录值;
- element.addContent(new Element("company_name").setText("name" + i));
- element.addContent(new Element("company_email").setText("@" + i + ".com"));
- // 给父节点list添加company子节点;
- root.addContent(element);
- }
- writeXml(doc);
- }
- //读取和修改xml文件
- public void UpdateXMLDoc() throws IOException, JDOMException {
- SAXBuilder sb = new SAXBuilder();
- Document doc = sb.build("d:/company_list.xml");
- Element root = doc.getRootElement();
- List<?> list = XPath.selectNodes(root, "/list/company");
- for (int i = 0; i < list.size(); i++) {
- Element ele = (Element) list.get(i);
- System.out.println(ele.getAttributeValue("id"));
- ele.setAttribute("id", ele.getAttributeValue("id") + "id");
- }
- writeXml(doc);
- }
- private void writeXml(Document Doc) throws FileNotFoundException,
- IOException {
- Format format = Format.getPrettyFormat(); //静态方法,产生两个空格的缩进格式
- format.setIndent(" "); //变成四个空格的缩进格式,用四个空格字符作参数
- format.setEncoding("gb2312"); //设置编码格式
- XMLOutputter XMLOut = new XMLOutputter(format);
- // 输出company_list.xml文件;
- XMLOut.output(Doc, new FileOutputStream("d:/company_list.xml"));
- }
- }