Document document;
SAXReader reader = new SAXReader();
String path=ServletActionContext.getRequest().getRealPath("/xml");
try {
document=reader.read(path+"/admin/名称.xml");
Element root = document.getRootElement(); //得到根节点目录
Element titleElement = null;
//获得根节点的子节点
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")){
//重新组合parameter参数
String ip=business.getParameter();
String beforeIP=business.getBeforeIP();
String parameter=beforeIP+ip;//将parameter属性值重新组合
attribute.attribute("parameter").setText(parameter);
attribute.attribute("active").setText("2");
}
}
}
}
}
}
//获得根节点的ver属性值,并修改其属性值
for (Iterator iterator1 = root.attributeIterator(); iterator1.hasNext();) {
Attribute attri = (Attribute) iterator1.next();
if(attri.getName().equals("ver")){
root.attribute("ver").setText(version);
}
}
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
path+"/admin/名称.xml")), format);//重新写回到原来的xml文件中
writer2.write(document);
writer2.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e1) {
e1.printStackTrace();
}
利用dom4j学习xml(三) 修改子节点的属性值
最新推荐文章于 2022-08-06 11:47:31 发布