Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1441552
  • 博文数量: 309
  • 博客积分: 1966
  • 博客等级: 上尉
  • 技术积分: 2665
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-08 16:19
个人简介

Follow excellent,And success will chase you.

分类: Java

2013-07-27 11:23:50

需要的jar包 jdom.jar

下载地址:

1.读取xml文件中的元素

a. abc.xml


[xhtml]
  1. xml version="1.0" encoding="gb2312"?> 
  2. <messages> 
  3. <message id="1"> 
  4.    <title>11title> 
  5.    <content> 
  6.     <name>lvpingyuname> 
  7.     <age>23age> 
  8.    content> 
  9.    <email>33email> 
  10. message> 
  11. <message id="2"> 
  12.    <title>44title> 
  13.    <content> 
  14.     <name>lvpingyuname> 
  15.     <age>23age> 
  16.    content> 
  17.    <email>66email> 
  18. message> 
  19. messages> 
11 lvpingyu 23 33 44 lvpingyu 23 66



b.如何读取 代码如下:

[java]
  1. package test; 
  2.  
  3. import java.io.FileInputStream; 
  4. import java.util.List; 
  5.  
  6. import org.jdom.Document; 
  7. import org.jdom.Element; 
  8. import org.jdom.input.SAXBuilder; 
  9.  
  10. public class MyJdom { 
  11.     public static void main(String[] args) throws Exception { 
  12.         SAXBuilder sb = new SAXBuilder();//建立构造器 
  13.         String path="abc.xml"
  14.         Document doc = sb.build(new FileInputStream(path));//读入指定文件 
  15.         Element root = doc.getRootElement();//获得根节点 
  16.         List list = root.getChildren();//将根节点下的所有子节点放入List中 
  17.         for (int i = 0; i < list.size(); i++) { 
  18.             System.out.println("---------------------------"); 
  19.             Element item = (Element) list.get(i);//取得节点实例 
  20.             String id = item.getAttribute("id").getValue();//取得属性值 
  21.             System.out.println("id-->" + id); 
  22.             Element sub = item.getChild("title");//取得当前节点的子节点 
  23.             String text = sub.getText();//取得当前节点的值 
  24.             System.out.println("Title-->" + text); 
  25.             if (item.getChild("content").getChildren().size() > 0) { 
  26.                 Element sub2 = item.getChild("content").getChild("name"); 
  27.                 String text2 = sub2.getText(); 
  28.                 System.out.println("name-->" + text2); 
  29.             } 
  30.             Element sub3 = item.getChild("email"); 
  31.             String text3 = sub3.getText(); 
  32.             System.out.println("Email-->" + text3); 
  33.          
  34.         } 
  35.                         System.out.println("---------------------------"); 
  36.     } 
  37.  
package test; import java.io.FileInputStream; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; public class MyJdom { public static void main(String[] args) throws Exception { SAXBuilder sb = new SAXBuilder();//建立构造器 String path="abc.xml"; Document doc = sb.build(new FileInputStream(path));//读入指定文件 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); } System.out.println("---------------------------"); } }



2.生成xml文件

[java]
  1. package test; 
  2.  
  3. import java.io.FileNotFoundException; 
  4. import java.io.FileOutputStream; 
  5. import java.io.IOException; 
  6.  
  7. import org.jdom.Document; 
  8. import org.jdom.Element; 
  9. import org.jdom.output.XMLOutputter; 
  10.  
  11. public class JavaXML { 
  12.     public void buildXML() throws Exception { 
  13.         String path = "company_list.xml"
  14.         // 创建根节点 list;     
  15.         Element root = new Element("list"); 
  16.         //根节点添加到文档中;     
  17.         Document Doc = new Document(root); 
  18.         //   此处 for 循环可替换成 遍历 数据库表的结果集操作;     
  19.         for (int i = 0; i < 5; i++) { 
  20.             // 创建子节点 company; 
  21.             Element elements = new Element("company"); 
  22.             // 给 company 节点添加属性 id; 
  23.             elements.setAttribute("id", "" + i); 
  24.             // 给 company 节点添加子节点并赋值 
  25.              
  26. // new Element("company_name")中的 "company_name"  
  27. //替换成表中相应字段,setText("name")中 "name 替换成表中记录值;  
  28.             elements.addContent(new Element("company_name").setText("name" + i)); 
  29.             elements.addContent(new Element("company_email").setText("@" + i 
  30.                     + ".com")); 
  31.  
  32.             // 给父节点list添加company子节点;    
  33.             root.addContent(elements); 
  34.         } 
  35.         XMLOutputter XMLOut = new XMLOutputter(); 
  36.         // 输出company_list.xml文件;    
  37.         XMLOut.output(Doc, new FileOutputStream(path)); 
  38.     } 
  39.  
  40.     public static void main(String[] args) { 
  41.         JavaXML javaXML = new JavaXML(); 
  42.         try
  43.             javaXML.buildXML(); 
  44.         } catch (Exception e) { 
  45.             // TODO Auto-generated catch block 
  46.             e.printStackTrace(); 
  47.         } 
  48.  
  49.     } 
  50.  
package test; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.jdom.Document; import org.jdom.Element; import org.jdom.output.XMLOutputter; public class JavaXML { public void buildXML() throws Exception { String path = "company_list.xml"; // 创建根节点 list; Element root = new Element("list"); //根节点添加到文档中; Document Doc = new Document(root); // 此处 for 循环可替换成 遍历 数据库表的结果集操作; for (int i = 0; i < 5; i++) { // 创建子节点 company; 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(path)); } public static void main(String[] args) { JavaXML javaXML = new JavaXML(); try { javaXML.buildXML(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }



可参考的资料:参考资料:
    JDOM V1.0 API在线参考手册()
    JDOM V1.0下载()
    JDOM处理XML快速上手
(http://kingwong.blogdriver.com/kingwong/291878.html)




*注:本文转自http://blog.csdn.net/java_cxrs/article/details/5474815

阅读(422) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~