比如XML内容如下: 
<file> 
<chapter id="1" name="a"/> 
<chapter id="2 name="b/> 
<chapter id="3 name="c"/> 
<chapter id="4 name="d/> 
</file> 
那么如何使用dom4j在id为"1"的节点后增加一个节点呢? 

解决方案 »

  1.   


    if("1".equals(pRoot.attribute("id").getValue())
    Element a=pRoot.addElement("xxx");
      

  2.   

    我是想在chapter节点的同级增加一个节点,这种方法好像是在chapter节点的下级增加节点
      

  3.   

    先找到父节点,再获取节点list,再查找指定节点的索引值,在list的索引值+1处插入新节点,ok?
      

  4.   


    try {
    SAXReader reader = new SAXReader();
    Document document = reader.read("src/resource/file.xml");
    Element root = document.getRootElement();
    List<Element> elements = root.elements();
    int index = 0;
    for(Element element:elements){
    index++;
    if("1".equals(element.attributeValue("id"))){
    Element elem = DocumentHelper.createElement("chapter");
    elem.addAttribute("id", "5");
    elem.addAttribute("name", "e");
    elements.add(index,elem);
    break;
    }
    }
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("UTF-8");
    XMLWriter writer = new XMLWriter(new FileWriter("src/resource/file.xml"),format);
    writer.write(document);
    writer.close();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }