java操作XML(四)

2014-11-24 02:55:47 · 作者: · 浏览: 2
Element everyone = (Element)childs.next(); result = everyone.getText(); } saveXMLFile(this.document); }else if(operator.equals("deleteOne")){ List childelements = root.elements(childName);//获取当前节点下的所有子节点,判断其值,以进行修改 for(Iterator childs=childelements.iterator();childs.hasNext();){ Element everyone = (Element)childs.next(); String divElement = everyone.attributeva lue("id"); if(divElement.equals(childValue)){ root.remove(everyone); } } saveXMLFile(this.document); }else if(operator.equals("deleteAll")){ List childelements = root.elements();//获取当前节点下的所有子节点,判断其值,以进行修改 for(Iterator childs=childelements.iterator();childs.hasNext();){ Element everyone = (Element)childs.next(); List childeDiv = everyone.elements(); for(Iterator childsDiv=childeDiv.iterator();childsDiv.hasNext();){ Element everyoneDiv = (Element)childsDiv.next(); everyone.remove(everyoneDiv); } } } saveXMLFile(this.document); } return result; } /** * 递归元素操作 * @param element:要递归的元素 * @param fatherNode:父节点名称 * @param fatherAttr:父节点属性 * @param childName:要进行操作的节点 * @param childValue:操作后的节点值 * @param operator: 要执行的操作名称 */ private synchronized String XmlElementOperator(Element element,String fatherNode,String fatherAttr,String childName,String childValue,String operator,Map mapAttr){ String result = ""; List elements = element.elements(); for(Iterator it=elements.iterator();it.hasNext();){ Element currentelement = (Element)it.next(); if(!currentelement.getName().equals(fatherNode)){ //当前元素并不是我们要查找的父元素时,继续查找 XmlElementOperator(currentelement,fatherNode,fatherAttr,childName,childValue,operator,mapAttr);//递归调用 }else{ if(currentelement.attributeCount()>
0){ //当前元素存在属性值时 for(Iterator list=currentelement.attributeIterator();list.hasNext();){ //遍历属性值 Attribute attr = (Attribute)list.next(); //获取属性值队列中的第一个元素 if(attr.getValue().equals(fatherAttr)){//根据属性值确定惟一的父元素 if(operator.equals("add")){//添加元素 Element childelement = currentelement.addElement(childName); //给当前元素添加一个子元素 childelement.setText(childValue); //设置子元素的数值 Iterator itmapAttr = mapAttr.keySet().iterator(); while(itmapAttr.hasNext()){ String key = (String) itmapAttr.next(); String value = mapAttr.get(key).toString(); childelement.setAttributeva lue(key,value); } // childelement.setAttributeva lue("id", "m1"); // childelement.setAttributeva lue("name", "module1"); // childelement.setAttributeva lue("url", "index1.jsp"); }else if(operator.equals("update")){//修改某个元素 List childelements = currentelement.elements(childName);//获取当前节点下的所有子节点,判断其值,以进行修改 for(Iterator childs=childelements.iterator();childs.hasNext();){ Element everyone = (Element)childs.next(); everyone.setText(childValue); //修改该元素值 } }else if(operator.equals("delete")){ //删除某个指定的元素 List childelements = currentelement.elements();//获取当前节点下的所有子节点,判断其值,以进行修改 for