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包 ,请高手指教.
<?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包 ,请高手指教.
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简明教程
貌似看懂我的意思,我节点和属性都可以添加,只是想在指定位置插入还不是在最末尾位置插入,而且要用dom4j(因为一开始就是用的这个,换的话所有程序都要改)
<?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>
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;
}
} 这个是我解决方案,希望可以帮助你