永发信息网

跪求一个例子,利用dom4j对xml文档进行增删改查,特别是查,尽量详细一点的,最好有注释哦..

答案:1  悬赏:30  手机版
解决时间 2021-11-22 11:24
  • 提问者网友:温旧梦泪无声
  • 2021-11-22 05:06
跪求一个例子,利用dom4j对xml文档进行增删改查,特别是查,尽量详细一点的,最好有注释哦..
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-11-22 06:26
这是xml文件




1
a
华夏银行
海淀区
large


4
b
招商银行
昌平区
middle


5
c
工商银行
朝阳区
little



下面是解析
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import java.util.List;

import org.dom4j.DocumentException;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class UpdateXml {
public static void main(String args[]){
SAXReader reader=new SAXReader();
File file=new File("bank.xml");
try{
Document document=reader.read(file);//得到文档对象
Element root=document.getRootElement();//得到根节点
Element ele=root.addElement("like");//增加节点
Element ele2=root.addElement("like2");//增加节点
Element eleRoot=ele.addElement("you");
eleRoot.setText("genhua");//设置内容
eleRoot.addAttribute("ai", "ni");//增加属性名和值
//List nodes=root.elements();//求子节点
//不知道这个是不是查
List nodes=root.elements("bank");//求所有BANK
for(Iterator it=nodes.iterator();it.hasNext();){
Element its=(Element)it.next();
System.out.println(its);
}
//下面这个是查bank下的所有子节点
for(Iterator itRoot=root.element("bank").elementIterator();itRoot.hasNext();){
Element itsRoot=(Element)itRoot.next();
System.out.println(itsRoot.getName());
}
//下面这个就是改某些值了
for(Iterator child=root.elementIterator();child.hasNext();){
Element childName=(Element)child.next();
for(Iterator childRoot=childName.elementIterator();childRoot.hasNext();){
Element childRootName=(Element)childRoot.next();
while(childRootName.getText().equals("海淀区"))
{childRootName.setText("001");}
while(childRootName.getText().equals("昌平区"))
{childRootName.setText("003");}
}
}
//remove()方法就是删了
root.remove(ele2);//删除节点
System.out.println(document.asXML());
Attribute att=root.attribute("ia");//取得ia的属性值
//System.out.println("属性"+att.getName()+"值"+att.getText());

new WriteIn().doc2(document,"bank2.txt");
}catch(DocumentException er){
er.printStackTrace();
}

}
}
//把输出的方法放外面了
class WriteIn{
public static boolean doc2(Document docu, String filename) {
boolean flag = true;
try {
XMLWriter writer = new XMLWriter( new OutputStreamWriter(new FileOutputStream(filename),"UTF-8"));
writer.write(docu);
writer.close();
} catch (Exception ex) {
flag = false;
ex.printStackTrace();
}
System.out.println(flag);
return flag;
}

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯