可参考 http://www.ibm.com/developerworks/cn/xml/x-jdom/
jdom自身依赖三个jar包,分别为 jaxen-core.jar jaxen-jdom.jar saxpath.jar
例子代码如下
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.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"));
}
}