我有这样一个需求:现有xml字串:
<a>
    <b>
       <c></c>
    </b>
</a>
现在我要在外层再添加一个结点:例如
<abc>
  <a>
    <b>
       <c></c>
    </b>
  </a>
</abc>

解决方案 »

  1.   

    呵呵,楼上真幽默,就是:我要在一个既有的xml外层再加一个结点
      

  2.   

    先create一个节点 比方说 nAbc   createElement
    然后用它的appendchild之类的方法把你读出的节点追加到这个结点上不就行了     appendChild
      

  3.   

    呵呵,既有的是一个xml字符串,只是字符串而已,dom4j倒是有一个 appendContent和appendAttribute,但貌似不行,因为这两个要求传入的对像 是dom4j自身的对像,如果把xml字符串转化成dom4j对像的话,这两个方法,看着不像,嘿嘿,我试一下咯!不行!试了一下这两个方法,继续求救
      

  4.   

    1.把传入的字符串转换成对象,在对象上操作
    2.传入的是字符串,就对它做字符串操作,"<abc>"+xml+"</abc>"
      

  5.   

    这岂不是要把根节点给变了!貌似dom4j里面没有直接给子节点添加父节点的方法。不过可以先把<a>改为<abc>然后再在<abc>下面添加一个<a>
      

  6.   

    我建议你可以这么做哟
    方法一:修改<a>节点,把它变成<abc>,然后再在<abc>下面添加一个节点
    方法二:删除<a>节点,然后添加<abc>,和<abc>的子结点<a>
      

  7.   

    使用Dom4j的代码样例:try
    {
        String xml = "<a><b><c>testxml</c></b></a>";
        Document doc = DocumentHelper.parseText(xml);
        Element root = DocumentHelper.createElement("abc");
        root.add(doc.getRootElement());
        doc.setRootElement(root);    System.out.println(doc.asXML());
    }
    catch(DocumentException exp)
    {
        exp.printStackTrace();
    }
      

  8.   

    不太明白,为什么生成xml也要用dom4j?StringBuffer不能拼嘛?
      

  9.   

    DOM4J是使用Object方式解析XML数据。按LZ的需求,没有特殊要求的话,直接StringBuffer拼上是最简单的。
      

  10.   

    哈哈,还是自己实现了!
    用document对像创建根结点,然后,把那段xml当做根结点的文本添加进去,再对document.asXML()后的字符串进行字符串转换处理,就可以实现我的需求了!这个一开始都想到了,只是有些变态,就来这里问问有没有好的方法!