message.xml文件位于src目录下的xmldom包中
1.message.xml文件:
2.查询数据
结果:
3.在原有的xml文件中增加数据
测试:
结果生成新的xml文件:
4.修改xml中数据
a.修改前xml文件:
b.调用方法:
c.测试:
d.执行后的xml文件:
5.删除xml中记录
a.删除前xml文件如上
b.执行方法:
c.测试:
d.执行后xml文件:
1.message.xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <root>
- <person id="1">
- <username>admin</username>
- <password>password1</password>
- </person>
- <person id="2">
- <username>manager</username>
- <password>password2</password>
- </person>
- </root>
2.查询数据
- package xmldom;
- import java.io.*;
- import java.util.*;
- import org.jdom.*;
- import org.jdom.input.SAXBuilder;
- import org.jdom.output.XMLOutputter;
- /**
- * xml的增删改查之SAXBuilder
- *
- * @author Administrator
- *
- */
- public class XmlTest {
- // 查询所有的数据
- public static void list() throws JDOMException, IOException {
- SAXBuilder builder = new SAXBuilder();
- String xmlPath = "./src/xmldom/message.xml";
- //String xmlPath = "./WebRoot/xml/message.xml";
- // 获得文档对象
- Document document = builder.build(xmlPath);
- // 获得根节点
- Element root = document.getRootElement();
- List list = root.getChildren();
- System.out.println("root : " + root);
- System.out.println("root.getName : "+root.getName());
- System.out.println("listSize : "+list.size());
- Iterator it = list.iterator();
- while (it.hasNext()) {
- Element e = (Element) it.next();
- System.out.println("ID: " + e.getAttributeValue("id"));
- System.out.println("childUsername:"+e.getChildText("username"));
- System.out.println("childPassword:"+e.getChildText("password"));
- }
- //for(int i=0;i<list.size();i++){
- // Element e = (Element)list.get(i);
- // ...
- //}
- }
- public static void main(String[] args) {
- try {
- XmlTest.list();
- } catch (JDOMException e1) {
- e1.printStackTrace();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- }
结果:
- root : [Element: <root/>]
- root.getName : root
- listSize : 2
- ID: 1
- childUsername:admin
- childPassword:password1
- ID: 2
- childUsername:manager
- childPassword:password2
3.在原有的xml文件中增加数据
- public static void add() throws JDOMException, FileNotFoundException,IOException {
- SAXBuilder builder = new SAXBuilder();
- String xmlPath = "./src/xmldom/message.xml";
- Document document = builder.build(xmlPath);
- //获得根节点
- Element root = document.getRootElement();
- //创建节点person
- Element element = new Element("person");
- //给person节点添加属性id
- element.setAttribute("id", "3");
- //给person节点添加子节点并赋值
- element.addContent(new Element("username").setText("hello"));
- element.addContent(new Element("password").setText("woerld"));
- //给父节点添加person子节点
- root.addContent(element);
- XMLOutputter output = new XMLOutputter();
- output.output(document, new FileOutputStream(xmlPath));
- }
测试:
- XmlTest.add();
结果生成新的xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <root>
- <person id="1">
- <username>admin</username>
- <password>password1</password>
- </person>
- <person id="2">
- <username>manager</username>
- <password>password2</password>
- </person>
- <person id="3">
- <username>hello</username>
- <password>woerld</password>
- </person>
- </root>
4.修改xml中数据
a.修改前xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <root>
- <person id="1">
- <username ip="1111111">admin</username>
- <password>admin</password>
- </person>
- <person id="2">
- <username>manager</username>
- <password>password2</password>
- </person>
- <person id="3">
- <username>hello</username>
- <password>woerld</password>
- </person>
- </root>
b.调用方法:
- public static void edit(int id) throws JDOMException,
- FileNotFoundException, IOException {
- SAXBuilder builder = new SAXBuilder();
- Document document = builder.build("./src/xmldom/message.xml");
- Element root = document.getRootElement();
- List list = root.getChildren();
- Iterator it = list.iterator();
- for (int i = 0; i < list.size(); i++) {
- Element e = (Element) it.next();
- System.out.println("==============" + e.getAttributeValue("id"));
- if (Integer.parseInt(e.getAttributeValue("id")) == id) {
- e.getChild("username").setText("xiaoma");
- e.getChild("username").setAttribute("ip", "66666666666");
- e.getChild("password").setText("xiaoma");
- }
- }
- XMLOutputter output = new XMLOutputter();
- output.output(document,
- new FileOutputStream("./src/xmldom/message.xml"));
- }
c.测试:
- XmlTest.edit(1);
d.执行后的xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <root>
- <person id="1">
- <username ip="66666666666">xiaoma</username>
- <password>xiaoma</password>
- </person>
- <person id="2">
- <username>manager</username>
- <password>password2</password>
- </person>
- <person id="3">
- <username>hello</username>
- <password>woerld</password>
- </person>
- </root>
5.删除xml中记录
a.删除前xml文件如上
b.执行方法:
- public static void del(int id) throws JDOMException, FileNotFoundException,
- IOException {
- SAXBuilder builder = new SAXBuilder();
- Document document = builder.build("./src/xmldom/message.xml");
- Element root = document.getRootElement();
- List list = root.getChildren();
- Iterator it = list.iterator();
- for (int i = 0; i < list.size(); i++) {
- Element e = (Element) it.next();
- if (Integer.parseInt(e.getAttributeValue("id")) == id) {
- root.removeContent(e);
- break;
- }
- }
- // 文件处理
- XMLOutputter out = new XMLOutputter();
- out.output(document, new FileOutputStream("./src/xmldom/message.xml"));
- }
c.测试:
- XmlTest.del(3);
d.执行后xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <root>
- <person id="1">
- <username ip="66666666666">xiaoma</username>
- <password>xiaoma</password>
- </person>
- <person id="2">
- <username>manager</username>
- <password>password2</password>
- </person>
- </root>