如果你使用Jdom,很好办,在父元素的下面addElement(按照你的实例,父元素是<a>上面的元素)。
如果你使用DOM或者SAX。那就稍微复杂点。所以你还是用JDOM。
另外,JDOM只能对XML文件在内存中的映像操作,不能直接读写文件。如果你要直接读写,就不要用任何XML API了,使用File(文件流)直接写文件。

解决方案 »

  1.   

    import javax.xml.parsers.*;
    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文件在同一目录下(已测试)