JAVA涂鴉
          關(guān)于JAVA的點點滴滴
          posts - 50,  comments - 689,  trackbacks - 0
          JDOM是Breet Mclaughlin和Jason Hunter兩大Java高手的創(chuàng)作成果,2000年初,JDOM作為一個開放源代碼項目正式開始研發(fā)。JDOM是一種解析XML的Java工具包。

          JDOM的二進制版本下載:http://www.jdom.org/downloads/index.html

          把解壓后的jdom.jar文件加到項目的類路徑中,另外便于調(diào)試,還要下載它的源代碼。

          一、解析XML
          要解析的XML文件:
          <?xml?version="1.0"?encoding="gb2312"?>
          <books>
          ???
          <book?email="zhoujunhui">
          ?????
          <name>rjzjh</name>
          ?????
          <price>60.0</price>
          ??
          </book>
          </books>


          解析XML的java文件:
          ?1?package?com;
          ?2?
          ?3?import?java.io.IOException;
          ?4?import?java.util.*;
          ?5?import?org.jdom.*;
          ?6?import?org.jdom.input.SAXBuilder;?
          ?7?
          ?8?public?class?Test?{
          ?9?
          10?????/**
          11??????*?@param?args
          12??????*/
          13?????public?static?void?main(String[]?args)?{
          14?????????SAXBuilder?sb=new?SAXBuilder(false);
          15?????????Document?doc?=?null;
          16?????????try?{
          17?????????????doc?=?sb.build("sample.xml");
          18?????????}?catch?(JDOMException?e)?{
          19?????????????e.printStackTrace();
          20?????????}?catch?(IOException?e)?{
          21?????????????e.printStackTrace();
          22?????????}?
          23?????????Element?root=doc.getRootElement();?//獲取根元素
          24?????????List?list=root.getChildren("book");//取名字為book的所有元素
          25?????????for(int?i=0;i<list.size();i++){
          26?????????????Element?element=(Element)list.get(i);
          27?????????????String?email=element.getAttributeValue("email");
          28?????????????String?name=element.getChildText("name");
          29?????????????String?price=element.getChildText("price");
          30?????????????System.out.println("name:"+name);
          31?????????????System.out.println("price:"+price);
          32?????????????System.out.println("email:"+email);
          33?????????}
          34?????}
          35?}
          36?
          37?

          二、生成XML:
          java文件:
          ?1?package?com;
          ?2?
          ?3?import?java.io.FileWriter;
          ?4?import?java.io.IOException;
          ?5?import?java.util.*;
          ?6?import?org.jdom.*;
          ?7?import?org.jdom.input.SAXBuilder;?
          ?8?import?org.jdom.output.XMLOutputter;
          ?9?
          10?public?class?Test?{
          11?
          12?????/**
          13??????*?@param?args
          14??????*/
          15?????public?static?void?main(String[]?args)?{
          16?????????//第一步,創(chuàng)建根元素?
          17?
          18?????????Element?carElement?=?new?Element("car");?
          19?????????Document?myDocument?=?new?Document(carElement);?
          20?
          21?????????//因為一個?XML?文檔必須一直有一個唯一的根元素,所以?Document?將?Element?放在它的構(gòu)造器中。?
          22?
          23?????????//第二步,添加一個?Attribute?
          24?
          25?????????carElement.setAttribute(new?Attribute("vin",?"123fhg5869705iop90"));?
          26?
          27?????????//第三步,添加其它元素?
          28?
          29?????????carElement.addContent(new?Element("make").addContent("Toyota"));?
          30?
          31?????????carElement.addContent(new?Element("model").addContent("Celica"));?
          32?????????carElement.addContent(new?Element("year").addContent("1997"));?
          33?????????carElement.addContent(new?Element("color").addContent("green"));?
          34?????????carElement.addContent(new?Element("license").addContent("1ABC234").setAttribute("state",?"CA"));?
          35?
          36?????????//第四步,添加一條注釋?
          37?
          38?????????carElement.addContent(new?Comment("Description?of?a?car"));?
          39?
          40?????????//第五步,讀一個子元素?
          41?
          42?????????Element?yearElement?=?carElement.getChild("year");?
          43?
          44?????????//第六步,刪除子元素?
          45?
          46?????????boolean?removed?=?carElement.removeChild("year");?
          47?
          48?????????//第七步,存盤?
          49?????????XMLOutputter?outputter?=?new?XMLOutputter();//用于輸出jdom?文檔
          50?????????FileWriter?writer;
          51?????????try?{
          52?????????????writer?=?new?FileWriter("myFile.xml");
          53?????????????outputter.output(myDocument,?writer);?
          54?????????????writer.close();
          55?????????}?catch?(IOException?e)?{
          56?????????????//?TODO?自動生成?catch?塊
          57?????????????e.printStackTrace();
          58?????????}?
          59?????????
          60?
          61?????}
          62?}
          63?
          64?

          生成的XML:
          <?xml?version="1.0"?encoding="UTF-8"?>
          <car?vin="123fhg5869705iop90">
          <make>Toyota</make>
          <model>Celica</model>
          <color>green</color>
          <license?state="CA">1ABC234</license>
          <!--Description?of?a?car-->
          </car>

          posted on 2006-08-21 11:18 千山鳥飛絕 閱讀(560) 評論(0)  編輯  收藏 所屬分類: J2SE
          正在閱讀:



          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 776089
          • 排名 - 56

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 彩票| 肃北| 沭阳县| 扶余县| 曲阳县| 聂拉木县| 全椒县| 白山市| 霍邱县| 建始县| 滨海县| 建阳市| 信宜市| 高州市| 北流市| 宜黄县| 东至县| 阿拉善左旗| 江津市| 泸定县| 平顶山市| 平南县| 瓦房店市| 福建省| 西宁市| 孝感市| 克什克腾旗| 房产| 万宁市| 鄂托克前旗| 高陵县| 威海市| 深水埗区| 横峰县| 东方市| 夹江县| 健康| 前郭尔| 衡水市| 闵行区| 新民市|