http://www.verejava.com/?id=16995144631335
下载依赖 jar 包
dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar
package com.xml;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class TestAttribueXml
{
/**
* 遍历
* @param args
*/
public static void testRead()
{
SAXReader reader=new SAXReader();
try
{
Document doc=reader.read(new File("student.xml"));
List<Node> nodeList=doc.selectNodes("/data/student");
for(Node node:nodeList)
{
System.out.println(node.getName()+":"+node.valueOf("@name")+","+node.valueOf("@age"));
}
} catch (DocumentException e)
{
e.printStackTrace();
}
}
/**
* 添加
* @param args
*/
public static void testAdd()
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student.xml"));
Element root=doc.getRootElement();
Element element=root.addElement("student");
element.addAttribute("name", "李浩");
element.addAttribute("age","23");
OutputFormat format=OutputFormat.createPrettyPrint();
writer=new XMLWriter(new FileWriter("student.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 修改
* @param args
*/
public static void testUpdate()
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student.xml"));
List<Element> elementList=doc.selectNodes("/data/student");
for(Element element:elementList)
{
String name=element.attributeValue("name");
if("李军".equals(name))
{
element.setAttributeValue("age", "21");
}
}
OutputFormat format=OutputFormat.createCompactFormat();
writer=new XMLWriter(new FileWriter("student.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 修改
* @param args
*/
public static void testUpdate2()
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student.xml"));
Element root=doc.getRootElement();
Iterator<Element> iter=root.elementIterator();
while(iter.hasNext())
{
Element element=iter.next();
String name=element.attributeValue("name");
if("李军".equals(name))
{
element.setAttributeValue("age", "24");
}
}
OutputFormat format=OutputFormat.createCompactFormat();
writer=new XMLWriter(new FileWriter("student.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 删除
* @param args
*/
public static void testDelete()
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student.xml"));
List<Element> elementList=doc.selectNodes("/data/student");
for(Element element:elementList)
{
String name=element.attributeValue("name");
if("李军".equals(name))
{
element.getParent().remove(element);
break;
}
}
OutputFormat format=OutputFormat.createCompactFormat();
writer=new XMLWriter(new FileWriter("student.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
testDelete();
testRead();
}
}
student.xml
<?xml version="1.0" encoding="UTF-8"?>
<data><student name="张山" age="22"/><student name="李浩" age="23"/></data>