用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())); }
}
关于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())); }
}
这应该是jdom的一个bug,http://www.jdom.org/已经推出jdom1.1
不知道这个版本能不能解决这个问题
假如<?xml version = "1.0" encoding="GBK" ?>它也删掉的话,那么它是错的。
发表于:2008-03-05 16:48:243楼 得分:0
xml格式默认编码就是utf-8,写不写都可以的。所以不能说jdom是错的。
假如 <?xml version = "1.0" encoding="GBK" ?>它也删掉的话,那么它是错的。 对,的确当删除一个节点后,<?xml version = "1.0" encoding="GBK" ?> 也被删除了。
所以说是一个bug.
唉。