亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java 使用JDOM解析xml文件

2019-11-26 16:02:04
字體:
來源:轉載
供稿:網友
JDOM是一個開源項目,它基于樹型結構,利用純JAVA的技術對XML文檔實現解析、生成、序列化以及多種操作。JDOM直接為JAVA編程服務。它利用更為強有力的JAVA語言的諸多特性(方法重載、集合概念以及映射),把SAX和DOM的功能有效地結合起來。
JDOM的官方地址:http://www.jdom.org/
1.首先新建一個接口和2個類,為后續做準備
[Moveable.java]
復制代碼 代碼如下:

package com.njupt.zhb.test;
public interface Moveable {
 void run();
}

[Plane.java]
復制代碼 代碼如下:

package com.njupt.zhb.test;
public class Plane implements Moveable {
 @Override
 public void run() {
  // TODO Auto-generated method stub
  System.out.println("飛機在翱翔.....");
 }
}

[Train.java]
復制代碼 代碼如下:

package com.njupt.zhb.test;
public class Train implements Moveable{
 @Override
 public void run() {
  System.out.println("火車在飛奔....");
 }

}

2.新建一個接口,主程序可以調用getBean方法,獲得相應的對象。
復制代碼 代碼如下:

package com.njupt.zhb.test;
public interface BeanFactory {
 Object getBean(String id);
}

3.需要解析的xml文件如下:
復制代碼 代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
 <bean
     id="train"
     class="com.njupt.zhb.test.Train">
 </bean>
 <bean
     id="plane"
     class="com.njupt.zhb.test.Plane">
 </bean>
</beans>

4.解析文件的主類,實現了BeanFactory接口。
復制代碼 代碼如下:

package com.njupt.zhb.test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
public class ClassPathXmlApplicationContext implements BeanFactory {
 private Map<String, Object> mapContainer = new HashMap<String, Object>();//用于存放解析出來的id和對象
 public ClassPathXmlApplicationContext(String fileName) throws Exception {
  SAXBuilder sb = new SAXBuilder();
  Document doc = sb.build(this.getClass().getClassLoader()
    .getResourceAsStream(fileName));
  Element root = doc.getRootElement();
  List list = XPath.selectNodes(root, "/beans/bean");//獲得此節點下的所有值
  System.out.println(list.size());
  for (int i = 0; i < list.size(); i++) {
   Element bean = (Element) list.get(i);
   String id = bean.getAttributeValue("id");//獲得id對應的值
   String clazz = bean.getAttributeValue("class");//獲得class對應的值
   Object o = Class.forName(clazz).newInstance();//Java反射機制,根據類名生成對象
   mapContainer.put(id, o);//保存到map中
   System.out.println(id + " " + clazz);
  }
 }
 @Override
 public Object getBean(String id) {
  return mapContainer.get(id);
 }
}

5.主程序TestMain調用。
復制代碼 代碼如下:

package com.njupt.zhb.test;
public class TestMain {
 public static void main(String[] args) throws Exception {
  BeanFactory f = new ClassPathXmlApplicationContext(
    "com/njupt/zhb/test/sample.xml");
  Object obj1 = f.getBean("train");//獲得標簽為train的對象
  Moveable m1 = (Moveable)obj1;//接口調用子類
  m1.run();
  // //----------------------
  Object obj2 = f.getBean("plane");
  Moveable m2 = (Moveable) obj2;
  m2.run();

 }
}

實驗結果:
復制代碼 代碼如下:

2
train com.njupt.zhb.test.Train
plane com.njupt.zhb.test.Plane
火車在飛奔....
飛機在翱翔.....

點擊下載源代碼
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜av久久乱码| 日韩视频免费在线观看| 日韩麻豆第一页| 亚洲精品国精品久久99热一| 日韩欧美亚洲范冰冰与中字| 日韩在线观看免费网站| 91精品视频一区| 91免费版网站入口| 成人有码视频在线播放| 久久精品国产亚洲精品2020| 午夜精品一区二区三区在线播放| 亚洲第一精品电影| 国产精品香蕉在线观看| 国产视频久久久久久久| 欧美国产在线视频| 播播国产欧美激情| 51精品在线观看| 欧美精品在线网站| 国语自产偷拍精品视频偷| 日韩免费观看视频| 欧美日韩国产成人在线| 精品久久久久久久久中文字幕| 亚洲欧美激情精品一区二区| 日韩风俗一区 二区| 欧美激情视频播放| 久热爱精品视频线路一| 在线视频欧美日韩精品| 欧美中文在线字幕| 川上优av一区二区线观看| 国产精品入口免费视频一| 性欧美xxxx视频在线观看| 欧美成人高清视频| 欧美电影免费观看| 精品夜色国产国偷在线| 亚洲香蕉伊综合在人在线视看| 欧美日韩999| 日韩欧美a级成人黄色| 日韩电影中文字幕一区| 亚洲综合最新在线| 中文字幕久久亚洲| 日韩av在线一区| 国产精品私拍pans大尺度在线| 欧美日韩国产一区在线| 日韩av在线网址| 成人av在线网址| 成人亚洲激情网| 色无极亚洲影院| 国产精品日韩在线播放| 欧美日在线观看| 日本中文字幕成人| 国产精品久久久久aaaa九色| 日韩精品在线看| 欧美激情一区二区三区在线视频观看| 亚洲免费人成在线视频观看| 国产亚洲人成a一在线v站| 成人国产亚洲精品a区天堂华泰| 91精品在线国产| 国产欧美在线视频| 欧美精品日韩www.p站| 亚洲欧美日韩中文在线制服| 91精品视频一区| 国产精品日韩久久久久| 岛国av一区二区| 日韩欧美高清在线视频| 黑人巨大精品欧美一区二区| 欧美日韩国产丝袜另类| 国产精品18久久久久久麻辣| 亚洲最大在线视频| 久久91精品国产91久久跳| www.久久草.com| 日韩av免费一区| 国产日韩精品在线观看| 国产精品91免费在线| 国产在线精品成人一区二区三区| 欧美日韩激情小视频| 在线观看国产精品91| 日韩精品免费在线| 美女999久久久精品视频| 成人免费高清完整版在线观看| 欧美日韩亚洲一区二区| 亚洲跨种族黑人xxx| 亚洲精品永久免费| 欧美成人午夜影院| 亚洲精品国产综合区久久久久久久| 亚洲自拍小视频| 91精品国产一区| 欧美风情在线观看| 性欧美视频videos6一9| 在线观看欧美日韩国产| 91在线视频九色| 九九热最新视频//这里只有精品| 日本欧美黄网站| 亚洲综合社区网| 精品久久久久久久久国产字幕| 91视频国产高清| 国产成人一区三区| 精品亚洲夜色av98在线观看| 欧美成人精品xxx| yw.139尤物在线精品视频| 亚洲自拍小视频免费观看| 精品久久中文字幕| 国产999精品久久久影片官网| 亚洲片国产一区一级在线观看| 欧美激情一二三| 亚洲国产成人精品久久| 国产裸体写真av一区二区| 久久久99久久精品女同性| 欧美亚洲国产视频| 色偷偷噜噜噜亚洲男人的天堂| 91精品国产99| 欧美激情亚洲自拍| 国产在线精品成人一区二区三区| 亚洲人成电影在线播放| 国产精品久久久久久av下载红粉| 久久久噜噜噜久噜久久| 午夜精品福利电影| 国产精品免费福利| 精品久久久久久中文字幕一区奶水| 国产亚洲欧美另类中文| 国产精品入口夜色视频大尺度| 日韩在线观看免费| 亚洲人成电影网站色xx| 欧美一级淫片videoshd| 国产精品成人久久久久| 欧美专区在线播放| 狠狠爱在线视频一区| 欧美黑人xxxx| 欧美精品免费在线观看| 国产男人精品视频| 久久久在线免费观看| 亚洲欧美另类中文字幕| 国产成+人+综合+亚洲欧洲| 国产精品美女www爽爽爽视频| 国产精品男女猛烈高潮激情| 精品中文视频在线| 国产精品一区二区久久| 亚洲欧美日韩久久久久久| 国产精品免费福利| 色诱女教师一区二区三区| 久久久国产成人精品| 久久精品青青大伊人av| 欧美视频免费在线观看| 97精品久久久中文字幕免费| 亚洲美女精品久久| 国产精品偷伦视频免费观看国产| 91精品成人久久| 国产成人综合亚洲| 国产精品三级在线| 欧美自拍大量在线观看| 久久精品国产96久久久香蕉| 亚洲人免费视频| 国产mv久久久| 亚洲人免费视频| 国产精品成人一区二区| 久久视频在线观看免费| 欧美精品免费在线观看| 精品中文字幕乱| 久久久久久亚洲精品不卡| 视频在线观看99| 亚洲视频视频在线| 成人情趣片在线观看免费| 国产91九色视频| 日韩精品视频在线免费观看| 这里只有精品在线播放|