如果你使用Jdom,很好办,在父元素的下面addElement(按照你的实例,父元素是<a>上面的元素)。
如果你使用DOM或者SAX。那就稍微复杂点。所以你还是用JDOM。
另外,JDOM只能对XML文件在内存中的映像操作,不能直接读写文件。如果你要直接读写,就不要用任何XML API了,使用File(文件流)直接写文件。
如果你使用DOM或者SAX。那就稍微复杂点。所以你还是用JDOM。
另外,JDOM只能对XML文件在内存中的映像操作,不能直接读写文件。如果你要直接读写,就不要用任何XML API了,使用File(文件流)直接写文件。
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.crimson.tree.*;
import org.w3c.dom.*;
import java.io.*;public class rebuilderxml
{
Element b=null;
public rebuilderxml(){
readxml();
}
private void readxml(){
try
{
//生成解析器工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//生成解析器
DocumentBuilder builder=factory.newDocumentBuilder();
//生成dom文档结构
//这里填入你的xml文件名
Document doc=builder.parse("Demo.xml");
b=doc.createElement("c");
b.appendChild(doc.createTextNode("333"));
NodeList nl=doc.getElementsByTagName("a");
Node node=nl.item(0);
node.appendChild(b);
//调用xslt引擎
TransformerFactory tf=TransformerFactory.newInstance();
Transformer transformer=tf.newTransformer();
//创建DOMSource对象,即变换后的Dom树
DOMSource source=new DOMSource(doc);
//这里填入你的xml文件名
StreamResult result=new StreamResult(new File("Demo.xml"));
//将DOM输出到XML文档
transformer.transform(source,result);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String arge[]){
new rebuilderxml();
}}
注意.java文件和xml文件在同一目录下(已测试)