用dom4j吧转自:http://hi.baidu.com/jingleq/blog/item/7311f712332395cac3fd7881.html
关于dom4j对xml的操作记录2008年01月25日 星期五 11:17 A.M.里面演示了通过xpath找节点,读写xml文档 
Java code import java.io.File;import org.dom4j.Comment;
import org.dom4j.Document; 
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;/* 
* 创建日期 2008-1-14
*//**
* @author C2One
* @version 1.0
* @see 添加注释
*/
public class Main {public static void main(String[] args) throws DocumentException {
    SAXReader reader = new SAXReader();         Document document = reader.read(new File("input.xml"));
        Node root=document.selectSingleNode("/root");
        Node aaa=document.selectSingleNode("/root/aaa");
        Element rootEl = (Element) root;
        
        //注释
        rootEl.remove(aaa);
        Comment com = DocumentHelper.createComment(aaa.asXML());
        rootEl.add(com);
        
        //取消注释
        Node bbb = document.selectSingleNode("/root/comment()");
        rootEl.remove(bbb);
        Element e = DocumentHelper.createElement("aaa");
        e.setText(aaa.getText());
        rootEl.add(e);
        
        System.out.println(document.asXML()); 
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("gb2312");
        XMLWriter writer = new XMLWriter(new FileWriter("output1.xml"),format);
        writer.write(DocumentHelper.parseText(document.asXML()));     }
}
 

解决方案 »

  1.   

    关注中!
    这应该是jdom的一个bug,http://www.jdom.org/已经推出jdom1.1
    不知道这个版本能不能解决这个问题
      

  2.   

    xml格式默认编码就是utf-8,写不写都可以的。所以不能说jdom是错的。
    假如<?xml version = "1.0" encoding="GBK" ?>它也删掉的话,那么它是错的。
      

  3.   

    我觉得你还是用dom4j,很容易上手。
      

  4.   

    3楼
    发表于:2008-03-05 16:48:243楼 得分:0 
    xml格式默认编码就是utf-8,写不写都可以的。所以不能说jdom是错的。 
    假如 <?xml version = "1.0" encoding="GBK" ?>它也删掉的话,那么它是错的。 对,的确当删除一个节点后,<?xml version = "1.0" encoding="GBK" ?> 也被删除了。
    所以说是一个bug.
    唉。