国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用Dom4j解析包含有DB連接信息的XML文件以及節點屬性的獲取

2019-11-14 21:35:27
字體:
來源:轉載
供稿:網友
使用Dom4j解析包含有DB連接信息的xml文件以及節點屬性的獲取

包含DB連接信息的XML文件

 1 <!--示例1——三級顯示--> 2 <db-connections> 3     <connection> 4         <name>DBTest</name> 5         <jndi></jndi> 6         <url> 7             <![CDATA[jdbc:MySQL://localhost:3306/db_test?useUnicode=true&characterEncoding=UTF8]]> 8         </url> 9         <driver>org.gjt.mm.mysql.Driver</driver>10         <user>test</user>11         <passWord>test2012</password>12         <max-active>10</max-active>13         <max-idle>10</max-idle>14         <min-idle>2</min-idle>15         <max-wait>10</max-wait>16         <validation-query>SELECT 1+1</validation-query>17     </connection>18 </db-connections>
db-connections.xml

節點屬性XML文件

 1 <!--示例2——節點屬性--> 2 <bookstore> 3         <book category="cooking"> 4            <title lang="en">Everyday Italian</title> 5            <author>Giada De Laurentiis</author> 6            <year>2005</year> 7            <PRice>30.00</price> 8         </book> 9         <book category="children" title="Harry Potter" author="J K. Rowling" year="2005" price="$29.9"/>10 </bookstore>
bookstore.xml

解析代碼:

 1 package xml; 2  3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.util.ArrayList; 6 import java.util.HashMap; 7 import java.util.Iterator; 8 import java.util.List; 9 import java.util.Map;10 11 import org.dom4j.Attribute;12 import org.dom4j.Document;13 import org.dom4j.Element;14 import org.dom4j.io.SAXReader;15 16 public class TestDom4j2 {17 18     /**19      * 解析包含有DB連接信息的XML文件20      * 格式必須符合如下規范:21      * 1. 最多三級,每級的node名稱自定義;22      * 2. 二級節點支持節點屬性,屬性將被視作子節點;23      * 3. CDATA必須包含在節點中,不能單獨出現。24      */25     public static List<Map<String, String>> parseDBXML(String configFile) throws Exception {26         List<Map<String, String>> dbConnections = new ArrayList<Map<String, String>>();27         //從JAVA的項目路徑中去查詢文件,文件必須在src源碼包路徑下才可以使用該方法28         //InputStream is = TestDom4j2.class.getResourceAsStream(configFile);29         30         //從盤符中獲取xml文件的內容31         FileInputStream is = new FileInputStream(new File(configFile));32         SAXReader saxReader = new SAXReader();33         Document document = saxReader.read(is);34         //獲取根節點db-connections或bookstore35         Element connections = document.getRootElement();36 37         Iterator<Element> rootIter = connections.elementIterator();38         while (rootIter.hasNext()) {39             Element connection = rootIter.next();40             Iterator<Element> childIter = connection.elementIterator();41             42             Map<String, String> connectionInfo = new HashMap<String, String>();43             //獲取connection或book節點的所有屬性44             List<Attribute> attributes = connection.attributes();45             //遍歷節點屬性46             for (int i = 0; i < attributes.size(); ++i) { 47                 //添加節點屬性值48                 connectionInfo.put(attributes.get(i).getName(), attributes.get(i).getValue());49             }50             //遍歷connection或book的子節點51             while (childIter.hasNext()) { 52                 //添加子節點53                 Element attr = childIter.next();54                 connectionInfo.put(attr.getName().trim(), attr.getText().trim());55             }56             dbConnections.add(connectionInfo);57         }58         return dbConnections;59     }60     61     public static void main(String[] args) {62           try {63             List<Map<String, String>>  dbList= parseDBXML("E://xml//db-connections.xml");64             System.out.println("URL=" + dbList.get(0).get("url"));65             66             System.out.println();67             68             List<Map<String, String>>  list= parseDBXML("E://xml//bookstore.xml");69             for(int i=0;i<list.size();i++){70                 System.out.println("title=" + list.get(i).get("title"));71                 System.out.println("author=" + list.get(i).get("author"));72                 System.out.println("year=" + list.get(i).get("year"));73                 System.out.println("price=" + list.get(i).get("price"));74             }75         } catch (Exception e) {76             e.printStackTrace();77         }78     }79 }

運行結果:

URL=jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=UTF8title=Everyday Italianauthor=Giada De Laurentiisyear=2005price=30.00title=Harry Potterauthor=J K. Rowlingyear=2005price=$29.9


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左云县| 九江市| 齐齐哈尔市| 德清县| 永修县| 南宫市| 白朗县| 巨野县| 纳雍县| 宾川县| 和林格尔县| 南康市| 浮山县| 如东县| 永修县| 昂仁县| 西充县| 杭州市| 昌图县| 田阳县| 冀州市| 鄂州市| 长白| 东光县| 遂昌县| 乌兰察布市| 正宁县| 河津市| 铜川市| 九龙坡区| 疏附县| 手游| 大厂| 康定县| 万源市| 凌源市| 资阳市| 安图县| 德保县| 沂南县| 辉县市|