xml文件:
<?xml version="1.0" encoding="utf-8"?>
<root>
  <child ID="1">  old  </child>
  <child ID="2">  old  </child>
</root>
--------------------------------------------
我要在child的ID="1"和ID="2"之间插入节点怎么插入?插入后的效果如下:<?xml version="1.0" encoding="utf-8"?>
<root>
  <child ID="1">  old  </child>
  <child ID="3">  new  </child>   -->这是新插入的的节点
  <child ID="2">  old  </child>
</root>
----------------------------------------------------
我用的是DOM4J的jar包 ,请高手指教.

解决方案 »

  1.   


    SAXReader reader = new SAXReader(); 
       Document doc = reader.read("conf/student.xml"); 
       Element root = doc.getRootElement(); 
       Element zhangsanNode = (Element) root.selectSingleNode(path); 
       Element cloneE = (Element) zhangsanNode.clone(); 
       cloneE.element("age").setText(Integer.parseInt(cloneE.elementText("age"))+1+""); 
       Element parent = zhangsanNode.getParent(); 
       parent.elements().add(2, cloneE); 
       OutputFormat format = OutputFormat.createPrettyPrint(); 
       XMLWriter writer = new XMLWriter(new FileOutputStream("conf/student.xml"),format); 
       writer.write(doc); 
       writer.close(); xml 
    <?xml version="1.0" encoding="UTF-8"?> 
    <students> 
      <student> 
        <name>zhangsan</name>  
        <age>18</age>  
        <gender>male</gender> 
      </student>  
      <student> 
        <name>lisi</name>  
        <age>22</age>  
        <age>23</age>  
        <gender>remale</gender> 
      </student>  
    </students>
    python简明教程
      

  2.   


    貌似看懂我的意思,我节点和属性都可以添加,只是想在指定位置插入还不是在最末尾位置插入,而且要用dom4j(因为一开始就是用的这个,换的话所有程序都要改)
      

  3.   

    一般插入都是这样
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <child ID="1"> old </child>
      <child ID="2"> old </child> 
      <child ID="3"> new </child>-->这是新插入的的节点位置
    </root>
    怎样插入才能在想要的位置如下:
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <child ID="1"> old </child>
      <child ID="3"> new </child> -->这是新插入的的节点位置
      <child ID="2"> old </child>
    </root>
      

  4.   

    同样的功能,用dom4j能不能从根节点开始位置插入,不在最后插入?
      

  5.   

    try {    
              SAXReader reader = new SAXReader();    
              Document document = reader.read("./src/source_file/new_xml.xml");    
                
                
                    //Add new node GlobalPurchaseOrderAcknowledgmentReasonCode  
              Element root = (Element) document.selectSingleNode("/Pip3Y4PurchaseOrderConfirmation/PurchaseOrder");    
              List<Element> elements = root.elements();    
              int index = 0;    
              for(Element element:elements){    
                  index++;    
                  System.out.println("Index:"+index+"Element_Name:"+element.getName());  
                  if("AccountDescription".equals(element.getName())){    
      
                      Element elem = DocumentHelper.createElement("GlobalPurchaseOrderAcknowledgmentReasonCode");    
                      elem.addText(entity.getGlobalPurchaseOrderAcknowledgmentReasonCode());    
                      Element elem1 = DocumentHelper.createElement("GlobalPurchaseOrderAcknowledgmentReasonCode");    
                      elem1.addText(entity.getGlobalPurchaseOrderAcknowledgmentReasonCode_2());    
                      Element elem2 = DocumentHelper.createElement("GlobalPurchaseOrderStatusCode");    
                      elem2.addText(entity.getGlobalPurchaseOrderStatusCode());    
                      elements.add(index,elem);    
                      elements.add(index+1,elem1);    
                      elements.remove(index+2);  
                      elements.add(index+2, elem2);  
                      break;    
                  }    
              }    这个是我解决方案,希望可以帮助你