java操作XML(四)
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