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

          JDOM的二進(jìn)制版本下載:http://www.jdom.org/downloads/index.html

          把解壓后的jdom.jar文件加到項(xiàng)目的類路徑中,另外便于調(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?????????//因?yàn)橐粋€(gè)?XML?文檔必須一直有一個(gè)唯一的根元素,所以?Document?將?Element?放在它的構(gòu)造器中。?
          22?
          23?????????//第二步,添加一個(gè)?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?????????//第五步,讀一個(gè)子元素?
          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?自動(dòng)生成?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 千山鳥飛絕 閱讀(561) 評(píng)論(0)  編輯  收藏 所屬分類: J2SE
          正在閱讀:



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

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 776098
          • 排名 - 56

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 琼结县| 西乡县| 平谷区| 台江县| 邯郸县| 娄烦县| 深泽县| 阳新县| 龙口市| 平武县| 广饶县| 安岳县| 固安县| 清镇市| 嘉义县| 宜兴市| 泗阳县| 逊克县| 长岭县| 内乡县| 连州市| 贡觉县| 惠州市| 绵阳市| 兴化市| 泊头市| 曲松县| 枞阳县| 梅河口市| 霞浦县| 新营市| 菏泽市| 望都县| 杂多县| 西乌| 丹东市| 龙州县| 瓦房店市| 高密市| 贵州省| 类乌齐县|