JDom 读写XML

上一篇 / 下一篇  2011-03-08 13:00:24 / 个人分类:JAVA

package com.test;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
public class MyJDom {
    public static void main(String[] args) throws Exception{
        SAXBuilder sb=new SAXBuilder();//建立构造器
        Document doc=sb.build(new FileInputStream("src/xml/abc.xml"));//读入指定文件
        Element root=doc.getRootElement();//获得根节点
        List list=root.getChildren();//将根节点下的所有子节点放入List中
        for(int i=0;i<list.size();i++) {
            System.out.println("---------------------------");
            Element item=(Element)list.get(i);//取得节点实例
            String id=item.getAttribute("id").getValue();//取得属性值
            System.out.println("id-->"+id);

            Element sub=item.getChild("title");//取得当前节点的字节点
            String text=sub.getText();//取得当前节点的值
             System.out.println("Title-->"+text);
            if(item.getChild("content").getChildren().size()>0){
            Element sub2=item.getChild("content").getChild("name");
                String text2=sub2.getText();
                System.out.println("name-->"+text2);
            }
          

            Element sub3=item.getChild("email");
            String text3=sub3.getText();
            System.out.println("Email-->"+text3);
        }
      }
}
附:要读取的xml文件如下:abc.xml

<?xml version="1.0" encoding="gb2312"?>
<messages>
<message id="1">
   <title>11</title>
   <content>
    <name>lvpingyu</name>
    <age>23</age>
   </content>
   <email>33</email>
</message>
<message id="2">
   <title>44</title>
   <content>
    <name>lvpingyu</name>
    <age>23</age>
   </content>
   <email>66</email>
</message>
</messages>

------------------------------------------------------------------------------------------------------
应用jdom生成xml文件
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.output.XMLOutputter;
public class JavaXML {
public void BuildXMLDoc() throws IOException, JDOMException {
   // 创建根节点 list;   
   Element root = new Element("list");
   // 根节点添加到文档中;   
   Document Doc = new Document(root);
   // 此处 for 循环可替换成 遍历 数据库表的结果集操作;   
   for (int i = 0; i < 5; i++) {
    // 创建节点 user;
    Element elements = new Element("company");
    // 给 company 节点添加属性 id;
    elements.setAttribute("id", "" + i);
    // 给 company 节点添加子节点并赋值
    // new Element("company_name")中的 "company_name" 替换成表中相应字段,setText("name")中 "name 替换成表中记录值;
    elements.addContent(new Element("company_name").setText("name" + i));
    elements.addContent(new Element("company_email").setText("@" + i+ ".com"));
    // 给父节点list添加company子节点;  
    root.addContent(elements);
   }
   XMLOutputter XMLOut = new XMLOutputter();
   // 输出company_list.xml文件;  
   XMLOut.output(Doc, new FileOutputStream("company_list.xml"));
}
/**
   * 主方法用于测试
   * @param args
   */
public static void main(String[] args) {
   try {
    JavaXML javaXML = new JavaXML();
    javaXML.BuildXMLDoc();
   } catch (Exception e) {
    e.printStackTrace();
   }
}

TAG:

 

评分:0

我来说两句

Open Toolbar