一、首先在网上找了一段用jdom解析xml的代码,如下(使用工具为eclipse3.4):
DomTest.java
- package domtest;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.Iterator;
- 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.XMLOutputter;
- public class DomTest {
- public DomTest() {
- String xmlpath = "src/book.xml"; // 路径一定要注意(以你放的路径)
- SAXBuilder builder = new SAXBuilder(false); // 使用JDOM首先要指定使用什么解析器,
- // 这表示使用的是默认的解析器
- try {
- Document doc = builder.build(xmlpath); // 得到Document
- Element books = doc.getRootElement(); // 得到根元素
- List booklist = books.getChildren("book"); // 得到元素(节点)的集合
- for (Iterator iter = booklist.iterator(); iter.hasNext();) { // 循环节点集合
- Element book = (Element) iter.next();
- String email = book.getAttributeValue("email");// 取得元素book的属性名为“
- // email”的属性值。
- System.out.println("邮箱===" + email);
- String name = book.getChildText("name");// 取得元素的子元素的值
- System.out.println("用户名===" + name);
- String price = book.getChildText("price");
- System.out.println("价格==" + price);
- book.getChild("name").setText("李三"); // 设置元素的值
- book.getAttribute("email").setValue("longyan@126.com"); // 设置元素属性的值
- }
- // 另外一程循环的的方法(解析xml文件后存入数据库的操作)
- //XmlBean xbean = null;
- //List list = new ArrayList();
- //for(int i=0;i<booklist.size();i++){
- //xbean = new XmlBean();
- //Element book=(Element)booklist.get(i);
- //xbean.setEmail(book.getAttributeValue("email"));
- //xbean.setUsrename(book.getChildText("name"));
- //xbean.setPrice(book.getChildText("price"));
- //list.add(xbean);
- //}
- // 保存Document的修改到XML文件中
- XMLOutputter outputter = new XMLOutputter();
- outputter.output(doc, new FileOutputStream(xmlpath));
- }
- catch (JDOMException e) {
- e.printStackTrace();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- new DomTest();// 测试上面所写的
- }
- }
二、需要引入Jdom的jar包,先在网站上下载了jdom-1.1.zip,解压后将jdom-1.1\build\jdom.jar引入项目中。
三、建相应的book.xml文件,如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <books>
- <book email="hello@live.com">
- <name>Hello</name>
- <price>100</price>
- </book>
- </books>
eclipse运行结果输出,如下:
book.xml运行后内容变为:
- <?xml version="1.0" encoding="UTF-8"?>
- <books>
- <book email="longyan@126.com">
- <name>李三</name>
- <price>100</price>
- </book>
- </books>
四、被注释的代码现在还不清楚怎么运行,这里的XmlBean似乎是用的是Apache的一个开源项目,但是似乎没起什么作用,还在研究中:
- //XmlBean xbean = null;
- //List list = new ArrayList();
- //for(int i=0;i<booklist.size();i++){
- //xbean = new XmlBean();
- //Element book=(Element)booklist.get(i);
- //xbean.setEmail(book.getAttributeValue("email"));
- //xbean.setUsrename(book.getChildText("name"));
- //xbean.setPrice(book.getChildText("price"));
- //list.add(xbean);
- //}