已经存在的XML文件格式如下
<?xml version="1.0" encoding="GB2312"?>
<Root>
 <Body>
  <MessageID></MessageID>
  <SendID></SendID>
  <RecvID></RecvID>
  <Message></Message>
 </Body>
</Root>
如何在这个文件中再追加一组<Body></Body>.形成这样
<?xml version="1.0" encoding="GB2312"?>
<Root>
 <Body>
  <MessageID></MessageID>
  <SendID></SendID>
  <RecvID></RecvID>
  <Message></Message>
 </Body>
 <Body>
  <MessageID></MessageID>
  <SendID></SendID>
  <RecvID></RecvID>
  <Message></Message>
 </Body>
</Root>
用的是jdom。请大侠指导该如何操作?百分感谢

解决方案 »

  1.   

    先获得<Root>结点.然后在该结点下插入子结点.就可以了.
      

  2.   

    public Object addContent(Object parent,Object child){
    if(parent==null ||!(parent instanceof Element) || child==null )
    return parent;
    ((Element)parent).addContent((Content)child);
    return parent;
    }
      

  3.   

    需要一个结点一个结点地插入吗?
    先插入<Body></Body>,然后增加<Body></Body>的子结点?
      

  4.   

    SAXBuilder builder=new SAXBuilder();
    Document doc=builder.build(new FileReader("xxx.xml"));
    Element root=doc.getRootElement();

    Element newElement=new Element("Body");
    newElement.addContent(new Element("MessageID"));
    newElement.addContent(new Element("SendID"));
    ....
    root.addContent(newElement);
      

  5.   


    SAXReader reader=new SAXReader();
        Document document =reader.read(new File(你的文件名));
        Document doc= DocumentHelper.createDocument();
        Element root=doc.getRootElement();
        Element Body=root.addElement("Body");
      //用body.addElement("节点名称").addAttribute("属性名","属性").addText("节点内容");
        Body.addElement("MessageID");
        Body.addElement("SendID")
        Body.addElement("RecvID")
        Body.addElement("Message")
    try{
          String indent="  ";    //缩进符号
          boolean newLines = true; // 是否产生新行(即一个元素一行)
          org.dom4j.io.XMLWriter writer = new org.dom4j.io.XMLWriter(
              new FileOutputStream("你的文件名"),new org.dom4j.io.OutputFormat(indent,newLines,"gb2312"));
          writer.write(doc);
          writer.flush();
          writer.close();
        }catch(Exception ex){}
      

  6.   

    现在的问题是:
    已经得到原来的XML包内容
    Document oldXML 如下
    <?xml version="1.0" encoding="GB2312"?>
    <Root>
    </Root>新包 Document newXML 
    <?xml version="1.0" encoding="GB2312"?>
    <Root>
     <Body>
      <MessageID>5</MessageID>
      <SendID>6</SendID>
      <RecvID>7</RecvID>
      <Message>8</Message>
     </Body>
    </Root>Element oldroot = oldXML .getRootElement();
    Element newroot = newXML .getRootElement();
    Element newbody = newroot.getChild("Body");oldroot.addContent(newbody);
    System.out.println(oldroot .getRootElement().getContent().toString());
    结果内容不是想要的
    <?xml version="1.0" encoding="GB2312"?>
    <Root>
     <Body>
      <MessageID>5</MessageID>
      <SendID>6</SendID>
      <RecvID>7</RecvID>
      <Message>8</Message>
     </Body>
    </Root>
      

  7.   

    搞定了,按 jFresH_MaN(听说距离产生美,所以我将离开你!) 的方法