//需要JDO包
package XML;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class XmlParse {
//解析xml文件
public static void XmlParse() throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
InputStream file = new FileInputStream("po.xml");
Document document = builder.build(file);//获得文档对象
Element root = document.getRootElement();//获得根节点
List<Element> list = root.getChildren();
for(Element e:list) {
System.out.println("ID="+e.getAttributeValue("id"));
System.out.println("username="+e.getChildText("username"));
System.out.println("password="+e.getChildText("password"));
System.out.println("url="+e.getAttributeValue("url"));
}
}
//增
public static void addXml() throws JDOMException, FileNotFoundException, IOException {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("po.xml");//获得文档对象
Element root = doc.getRootElement();//获得根节点
//添加新元素
Element element = new Element("person");
element.setAttribute("id", "3");
Element element1 = new Element("username");
element1.setText("zhangdaihao");
Element element2 = new Element("password");
element2.setText("mima");
element.addContent(element1);
element.addContent(element2);
root.addContent(element);
doc.setRootElement(root);
/*
*下面三行用于换行和编码
*2009.7.12
*/
Format format = Format.getCompactFormat();
format.setEncoding("utf-8"); //设置xml文件的字符为gb2312
format.setIndent(" ");//设置缩进
//文件处理
XMLOutputter out = new XMLOutputter(format);
out.output(doc, new FileOutputStream("po.xml"));
}
//根据ID值删除一个节点
public static void deletePerson(int id) throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
InputStream file = new FileInputStream("po.xml");
Document doc = builder.build(file);//获得文档对象
Element root = doc.getRootElement();//获得根节点
List<Element> list = root.getChildren();
for(Element e:list) {
//获取ID值
if(Integer.parseInt(e.getAttributeValue("id"))==id) {
root.removeContent(e);
break;//??
}
}
//文件处理
XMLOutputter out = new XMLOutputter();
out.output(doc, new FileOutputStream("po.xml"));
}
//根据ID值修改一个节点
public static void updatePerson(int id) throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
InputStream file = new FileInputStream("po.xml");
Document doc = builder.build(file);//获得文档对象
Element root = doc.getRootElement();//获得根节点
List<Element> list = root.getChildren();
for(Element e:list) {
//获取ID值
if(Integer.parseInt(e.getAttributeValue("id"))==id) {
System.out.println("--------------------");
e.getChild("username").setText("111111111");
e.getChild("password").setText("password");
}
}
//文件处理
XMLOutputter out = new XMLOutputter();
out.output(doc, new FileOutputStream("po.xml"));
}
static public void main(String ars[]) throws JDOMException, IOException {
//addXml();//增加XML
// deletePerson(3);//删除XML
//updatePerson(2);//修改XML
//XmlParse();//解析XML
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<person id="1" url="bbb">
<username>张三</username>
<password>123123</password>
</person>
<person id="2" >
<username>111111111</username>
<password>password</password>
</person>
<person id="3" url="关永贵">
<username>zhangdaihao</username>
<password>mima</password>
</person>
</root>