package com.pb.biz;import java.io.FileOutputStream;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;
import org.w3c.dom.Element;public class Test { public static void main(String[] args) {

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=null;

Document document=null;

try{
db=dbf.newDocumentBuilder();
document =db.parse("src\\wuxia.xml");

}catch (Exception e) {
e.printStackTrace();
}
Element naElement=document.createElement("name");
Element rootElement=(Element)document.getElementsByTagName("wuxialist").item(0);
rootElement.appendChild(naElement);
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
//转换器
Transformer transformer;
try {
transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource domSource = new DOMSource(document);
StreamResult result = new StreamResult(new FileOutputStream("src\\wuxia.xml" ));
transformer.transform(domSource, result);

} catch (Exception e) {
e.printStackTrace();
}
}
}
这个是添加新的节点   ,尤于我是新手,还请大家帮忙找下错

解决方案 »

  1.   

    个人观点:
    你的Document是通过DocumentBuilder.parse建立的,是一个parser其作用是分析已有XML文件。
    若要生成XML文件,Document需要用DocumentBuilder.newDocument建立。
    并且Transformer的作用是为DOM Tree提供OutputStream,你还需要设置转换格式,Transformer.setOutputProperty(Outputkeys.METHOD, "xml")。
      

  2.   

    加上这句话: naElement.appendChild(document.createTextNode("lewisl")); 就有效果啊, 其实你代码没问题的
    <?xml version="1.0" encoding="GB2312" standalone="no"?><wuxialist>
    <name>lewisl</name></wuxialist>