`

dom4j解析XML配置文件(例子)

    博客分类:
  • XML
阅读更多
sys-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
   <db-info>
    <driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
    <url>jdbc:oracle:thin:@localhost:1521:HUGUI</url>
    <user-name>drp1</user-name>
    <password>drp1</password>
   </db-info>
   
   <dao-factory>
   <!-- 
    <item-dao-factory>com.hugui.drp.basedata.dao.ItemDaoFactory4Oracle</item-dao-factory>
     -->
    <item-dao-factory>com.hugui.drp.basedata.dao.ItemDaoFactory4MySql</item-dao-factory>
    <user-dao-factory>com.hugui.drp.basedata.dao.ItemDaoFactory4Oracle</user-dao-factory>
   </dao-factory>
</config>




XmlConfigReader.java

package com.hugui.drp.util;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 用单例模式解析sys-config.xml文件
 * @author Administrator
 *
 */

public class XmlConfigReader {
 
// //饿汉式
// private static XmlConfigReader instance = new XmlConfigReader();
//
// private XmlConfigReader(){
//  
// }
// 
// public static XmlConfigReader getInstance(){
//  return instance;
// }
 
 //满汉式(延迟加载lazy)
 private static XmlConfigReader instance = null;
 
 //保存dao工厂的名称
 //key=名称 value=具体类完整路径
 private Map<String, String> daoFactoryMap = new HashMap<String, String>();
 
 //保存jdbc相关配置信息
 private JdbcConfig jdbcConfig = new JdbcConfig();
 
 private XmlConfigReader(){

  SAXReader reader = new SAXReader();
  InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
  try {
   Document doc = reader.read(in);
   Element driverNameElt = (Element)doc.selectObject("/config/db-info/driver-name");
   Element urlElt = (Element)doc.selectObject("/config/db-info/url");
   Element userNameElt = (Element)doc.selectObject("/config/db-info/user-name");
   Element passwordElt = (Element)doc.selectObject("/config/db-info/password");
   //设置jdbc相关的配置
   jdbcConfig.setDirverName(driverNameElt.getStringValue());
   jdbcConfig.setUrl(urlElt.getStringValue());
   jdbcConfig.setUserName(userNameElt.getStringValue());
   jdbcConfig.setPassword(passwordElt.getStringValue());
   
   System.out.println("读取jdbcConfig----->>" + jdbcConfig);
   //读取DaoFactory信息
   List daoFactoryList = doc.selectNodes("/config/dao-factory/*");
   for(int i=0; i<daoFactoryList.size(); i++){
    Element daoFactoryElt = (Element)daoFactoryList.get(i);
    String tagName = daoFactoryElt.getName();
    String tagText = daoFactoryElt.getText();
       System.out.println("读取jdbcConfig----->>" + tagText);
    //放入Map
    daoFactoryMap.put(tagName, tagText);
   }
   
  } catch (DocumentException e) {
   e.printStackTrace();
  }
  
 }
 
 public static synchronized XmlConfigReader getInstance(){
  if(instance == null){
   instance = new XmlConfigReader();
  }
  return instance;
 }
 /**
  * 返回jdbc相关配置
  * @return
  */
 public JdbcConfig getJdbcConfig(){
  return jdbcConfig;
 }
 /**
  * 根据标签名称取得DaoFactory的名字
  * 
  * @param daoFactoryName
  * @return daoFactory的完整类路径 
  */
 public String getDaoFactory(String daoFactoryName){
  return daoFactoryMap.get(daoFactoryName);
 }
 
 public static void main(String [] args){
  
  String itemDaoFactory = XmlConfigReader.getInstance().getDaoFactory("item-dao-factory");
  System.out.println(itemDaoFactory);
//  JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();
//  System.out.println(jdbcConfig.toString());
 }

}


 


分享到:
评论

相关推荐

    java dom4j 解析xml的例子,可用

    通过这个例子,你可以学习到如何在实际开发中使用DOM4J进行XML的解析、查询和修改,这对于处理XML格式的数据交换、配置文件或Web服务响应非常有用。同时,了解如何在Java工程中处理文件路径,也是日常开发中不可或缺...

    dom4j 解析xml文件小例子

    在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输数据,具有自描述性和结构化的特点,广泛应用于网络...

    dom4j解析xml文件的例子

    在这个例子中,我们将深入理解DOM4J如何解析XML文件,同时也会探讨一些相关工具的使用。 XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于数据交换、配置文件等领域。DOM(Document Object ...

    Dom4j解析配置文件与xml小例子

    本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...

    dom4j 解析xml例子

    在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...

    dom4j解析xml,连接oracle数据库

    在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...

    Dom4j例子,可以解析大部分的XML

    **Dom4j详解:解析XML的强大工具** Dom4j是一个开放源码的Java库,它提供了灵活且功能强大的API来处理XML文档。在Java世界中,XML作为一种数据交换格式广泛应用于各种应用程序,如配置文件、数据传输、文档存储等。...

    使用dom4j和jaxen解析xml

    - **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...

    dom4j解析xml文件所需jar和测试例子.zip

    在这个“dom4j解析xml文件所需jar和测试例子.zip”压缩包中,包含了三个关键的JAR文件和一个测试类,它们是使用DOM4J解析XML文件的基础。 1. **dom4j-1.6.1.jar**:这是DOM4J的核心库,包含了处理XML的各种类和接口...

    dom4j关于xml读写的例子里面还有dom4j的jar包

    DOM4J提供了一种灵活的方式来解析XML文档,可以将其转换为一个可操作的DOM树结构。这个树形结构由节点组成,包括元素节点、属性节点、文本节点等,每个节点都可以被访问和修改。 在DOM4J中,XML文档的读取通常通过`...

    DOM解析XML文件例子

    在实际应用中,DOM解析XML文件常用于动态网页的数据交互、XML配置文件的读取和处理等场景。但需要注意,DOM解析在处理大型XML文件时可能会消耗大量内存,因此在资源有限的环境下,可能需要考虑使用更轻量级的解析...

    用dom4j解析xml小例子

    一、DOM4J解析XML的基本步骤 1. 导入DOM4J库:首先,你需要在项目中引入DOM4J库。如果这是一个Java项目,你可能已经从压缩包中包含了所需的jar文件,如dom4j-1.6.1.jar。 2. 创建Document对象:解析XML文件的第一...

    dom4j配置文件例子

    下面是一个简单的DOM4J解析XML配置文件的示例代码: ```java import org.dom4j.Document; import org.dom4j.DocumentFactory; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4...

    java使用dom4j解析xml配置文件实现抽象工厂反射示例

    总结起来,这个示例展示了如何在Java中利用DOM4J解析XML配置文件,结合抽象工厂模式和反射机制来创建和管理对象。这样的设计允许开发者在不修改代码的情况下,通过调整配置文件就能改变系统的运行行为,提高了软件的...

    用 dom4j解析xml例子

    本文将深入解析一个使用DOM4J进行XML文件读取的例子,并详细阐述其中涉及的关键知识点。 ### DOM4J概述 DOM4J(Document Object Model for Java)是一个开源的、高性能的XML解析器。它提供了类似于DOM的接口,但比...

    使用dom4j解析xml文件

    本文将深入探讨如何使用DOM4J库在Java中解析XML文件,以`province_city.xml`为例。 首先,DOM4J是Java的一个强大的XML处理库,它提供了丰富的API来读取、写入、修改和操作XML文档。相比于DOM,DOM4J更轻量级且易于...

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    7. **bis和dom4j读写xml文件.files**:这两个文件可能是辅助资源,如样式表或配置文件,用于增强HTML示例的展示效果,或者包含与DOM4J操作XML相关的其他信息。 掌握DOM4J对于Java开发者来说是非常有用的,因为它能...

    用dom4j操作xml的例子

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件以及文档存储等领域。DOM4J是Java中一个非常流行的XML处理库,它提供了丰富的API来解析、创建、修改XML文档。本篇文章将...

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析...当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml文件的实例

    Dom4j对xml文件的解析

    1. **配置文件处理**:许多Java应用使用XML配置,DOM4J可以方便地读取和修改这些配置。 2. **Web服务**:在处理SOAP或RESTful Web服务时,DOM4J用于解析和构建XML响应。 3. **数据交换**:在不同系统之间交换结构化...

Global site tag (gtag.js) - Google Analytics