您的位置:首页 > 其它

利用dom4j学习xml(二) 添加子节点并查看子节点的属性值

2011-06-09 11:42 399 查看
SAXReader reader = new SAXReader();
Document document;
String path=ServletActionContext.getRequest().getRealPath("/xml");
document = reader.read(path+"/admin/名称.xml");
// 获得根节点以及属性
Element root = document.getRootElement();
// 获得根节点的名字,属性,属性值
for (Iterator iterator = root.attributeIterator(); iterator.hasNext();) {
Attribute attri = (Attribute) iterator.next();
}
if(root.elementIterator().hasNext()==false){//返回为false的话,就向xml文件中添加子节点
business.setBeforeIP("-connect ");
//创建businesses节点,business,update
Element businesses=root.addElement("businesses");
Element business= businesses.addElement("business");
Element update= business.addElement("update");
//设置business中的属性及属性值
business.addAttribute("name","$(appdir)//vnc//winvnc4.exe");
business.addAttribute("actualfile","ver.txt");
business.addAttribute("ver","");
business.addAttribute("md5","19a766f0861dc1fcfa3a8689ea036e95");
business.addAttribute("active","0");
business.addAttribute("parameter","-connect update.51cy.org");
//设置update中的属性及属性值
update.addAttribute("cmd", "$(appdir)//aupc.exe ftp://test:test@update.51cy.org/vnc/1.0.2.1/ver.txt -d $(appdir)//update//vnc");
update.addAttribute("name", "update//vnc//ver.txt");
update.addAttribute("action", "1");
update.addAttribute("actionparam", "$(appdir)//vnc//ver.txt");

OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
path+"/admin/"+account+".xml")), format);
writer2.write(document);
writer2.close();
}
//获得根节点的子节点
for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
Element e = (Element) iterator.next();
for (Iterator iter = e.attributeIterator(); iter.hasNext();) {
Attribute attr = (Attribute) iter.next();
}
if(e.getName().equals("businesses")){
//获得当前节点的子节点
for(Iterator iter=e.elementIterator();iter.hasNext();){
Element attribute=(Element)iter.next();
for(Iterator itera=attribute.attributeIterator();itera.hasNext();){
Attribute attri=(Attribute)itera.next();
if(attri.getName().equals("name")){//获得属性name
if(attribute.attributeValue(attri.getName()).equals("$(appdir)//vnc//winvnc4.exe")){
String parameter=attribute.attributeValue("parameter");
beforeIP=parameter.substring(0,9);
business.setBeforeIP(beforeIP);
business.setFileName(account);
String par=parameter.substring(9, parameter.length());
business.setParameter(par);
}
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: