`
yinchunjian
  • 浏览: 283081 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java读取xml配置文件(1)

阅读更多
This article download from internet ,and i cannot confirm which site is the initial src

   1. package first;
   2.
   3. import org.xml.sax.Attributes;
   4. import org.xml.sax.helpers.DefaultHandler;
   5. import org.xml.sax.SAXException;
   6. import java.util.Properties;
   7. import javax.xml.parsers.SAXParser;
   8. import javax.xml.parsers.SAXParserFactory;
   9.
  10. public class ReadConfigXml {
  11.
  12.     private Properties props;
  13.     public ReadConfigXml(String url) {
  14.         ParseXML myRead = new ParseXML();
  15.         try {
  16.             myRead.parse(url);
  17.             props = new Properties();
  18.             props = myRead.getProps();
  19.         } catch (Exception e) {
  20.             e.printStackTrace();
  21.         }
  22.     }
  23.
  24.     public String getHost() {
  25.                 return props.getProperty("host");
  26.     }
  27.     public String getDataBase() {
  28.         return props.getProperty("database");
  29.     }
  30.     public String getUserName() {
  31.         return props.getProperty("username");
  32.     }
  33.     public String getPassWord() {
  34.         return props.getProperty("password");
  35.     }
  36. }
  37.
  38. class ConfigParser extends DefaultHandler
  39. {
  40.     // //定义一个Properties 用来存放属性值
  41.     private Properties props;
  42.     private String currentSet;
  43.     private String currentName;
  44.     private StringBuffer currentValue = new StringBuffer();
  45.
  46.     // 构建器初始化props
  47.     public ConfigParser() {
  48.          this.props = new Properties();
  49.     }
  50.
  51.     public Properties getProps() {
  52.         return this.props;
  53.     }
  54.
  55.     // 定义开始解析元素的方法. 这里是将<xxx>中的名称xxx提取出来.
  56.     public void startElement(String uri, String localName, String qName,
  57.             Attributes attributes) throws SAXException {
  58.         currentValue.delete(0, currentValue.length());
  59.         this.currentName = qName;
  60.     }
  61.
  62.     // 这里是将<xxx></xxx>之间的值加入到currentValue
  63.     public void characters(char[] ch, int start, int length)
  64.             throws SAXException {
  65.         currentValue.append(ch, start, length);
  66.     }
  67.
  68.     // 在遇到</xxx>结束后,将之前的名称和值一一对应保存在props中
  69.     public void endElement(String uri, String localName, String qName)
  70.             throws SAXException {
  71.         props.put(qName.toLowerCase(), currentValue.toString().trim());
  72.     }
  73.
  74. }
  75.
  76. class ParseXML {
  77.     // 定义一个Properties 用来存放属性值
  78.     private Properties props;
  79.    
  80.     public Properties getProps() {
  81.         return this.props;
  82.     }
  83.
  84.     public void parse(String filename) throws Exception {
  85.         // 将我们的解析器对象化
  86.         ConfigParser handler = new ConfigParser();
  87.         // 获取SAX工厂对象
  88.         SAXParserFactory factory = SAXParserFactory.newInstance();
  89.         factory.setNamespaceAware(false);
  90.         factory.setValidating(false);
  91.         // 获取SAX解析
  92.         SAXParser parser = factory.newSAXParser();
  93.         try {
  94.             // 将解析器和解析对象xml联系起来,开始解析
  95.             parser.parse(filename, handler);
  96.             // 获取解析成功后的属性
  97.             props = handler.getProps();
  98.         } finally {
  99.             factory = null;
100.             parser = null;
101.             handler = null;
102.         }
103.     }
104. }
105. //后两个类实现了xml文档属性设置的任意读取.只要是xml的属性值,都读到了property中,你只需在property中提取就可以了.
      //第一个类是针对我的xml文件写的,似乎有点多余.
106.
         1. //ok,搞定了,读取的时候如下:
         2. ReadConfigXml xmlread = new ReadConfigXml("reportenv.xml");
         3. String username = xmlread.getUserName();
         4. String password = xmlread.getPassWord();
         5.
         6. /*配置文件reportenv.xml如下,比较简单:
         7.
         8. <?xml version="1.0" encoding="utf-8"?>
         9. <reportenv>
        10. <datasource>
        11. <username>sqlname</username>
        12. <password>password</password>
        13. </datasource>
        14. </reportenv>
        15. */
        16.
分享到:
评论

相关推荐

    使用Java读取XML配置文件

    使用 Java 读取 XML 配置文件 Java 语言和 XML 技术可以说是黄金组合,网上已经有很多文章介绍 XML 在电子商务中的数据交换的作用。但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是...

    JAVA高手解析XML配置文件的读取操作.pdf

    JAVA 高手解析 XML 配置文件的读取操作 本文主要讲解了 Java 中如何读取 XML 配置文件,并对 XML 解析器进行了分类,分别介绍了 DOM 和 SAX 两种解析方式的特点和使用场景,并提供了一个使用 SAX 解析器读取 XML ...

    Java中XML配置文件的读取(sax).doc

    Java中XML配置文件的读取(SAX) XML配置文件是Java开发中常用的配置文件格式,特别是在J2EE项目中。XML文件可以存储配置信息,并且易于维护和修改。然而,在Java中读取XML配置文件成了一个需要解决的问题。本文将...

    java读取配置文件xml ,properties,txt

    1. **XML配置文件**: XML是一种结构化数据存储格式,常用于复杂的应用程序配置。在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)等解析器来读取...

    JAVA项目数据库连接XML配置文件.docx

    JAVA项目数据库连接XML配置文件 在 Java 项目中,数据库连接的配置是一个非常重要的步骤,为了方便用户配置数据库,使用 XML 配置文件可以灵活地修改数据连接。本文将详细介绍如何使用 XML 配置文件来连接数据库。 ...

    java读取xml文件

    Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等领域。本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 ...

    java读取 配置 xml文件

    本篇文章将深入探讨如何在Java中读取XML配置文件,以及如何实现一个简易版的Spring框架。 首先,我们需要导入Java的DOM(Document Object Model)库,它提供了处理XML文档的标准API。在Java中,我们通常使用`javax....

    java读取配置文件

    在Java编程中,读取配置文件是常见的任务,特别是在开发需要灵活配置的系统时。配置文件通常用于存储应用程序的设置,如数据库连接信息、服务器端口、第三方服务的API密钥等,这些信息可能需要根据不同的环境或需求...

    java读取xml文件生成文件

    这通常通过在构建工具(如Maven或Gradle)的配置文件中添加依赖来实现。对于导入工程,你可以使用IDE(如IntelliJ IDEA或Eclipse)的相应功能将外部库添加到项目的类路径中。 总的来说,Java提供了一套完整的工具来...

    java读取本地xml文件信息

    总结起来,Java读取本地XML文件涉及的主要步骤包括创建`DocumentBuilderFactory`,构建`DocumentBuilder`,解析XML文件为`Document`对象,然后通过`Document`对象访问和操作XML结构。对于复杂需求,XPath可以提供更...

    Java读写xml java 读写xml文件操作, 简单易懂

    ### Java读写XML文件操作详解 在现代软件开发中,XML(可扩展标记语言)是一种广泛使用的数据交换格式,尤其在处理配置文件、数据存储以及跨平台数据交换时显得尤为重要。Java提供了多种读写XML文件的方法,包括SAX...

    java写XML文件和读取XML文件

    二、Java读取XML文件 1. 使用DOM解析: 读取XML文件时,首先会将整个XML文档加载到内存中的DOM树,然后通过API遍历和访问各个节点。 示例代码: ```java import javax.xml.parsers.DocumentBuilder; import javax....

    XML配置文件连接Oracle数据库

    5. **解析XML配置**:在应用程序中,你需要使用Java的DOM或SAX解析器来读取和解析XML配置文件。获取到连接信息后,可以使用`java.sql.DriverManager`类的`getConnection()`方法建立数据库连接。 6. **建立数据库...

    Java解析xml配置文件,DOM4J解析xml配置文件,提供使用文档和源码下载

    Java解析XML配置文件是开发过程中常见的一项任务,特别是在基于Java的框架中,如Spring,大量使用XML文件来存储配置信息。DOM4J是Java中一个非常流行且功能强大的XML处理库,它提供了丰富的API用于读取、写入、修改...

    java 读取xml文件生成树形图

    在Java编程中,读取XML文件并将其转换为树形结构是一种常见的操作,尤其是在处理配置文件、数据交换或解析XML文档时。以下是一篇详细解释如何实现这一过程的文章。 首先,我们需要了解XML(eXtensible Markup ...

    java_java写XML文件和读取XML文件

    在Java编程中,处理XML文件是常见的需求,包括读取XML文件的内容以及将数据写入XML文件。下面将详细介绍Java中如何进行XML文件的读取和写入操作。 一、读取XML文件 1. DOM解析:Document Object Model(DOM)是一...

    JAVA读取数据库的XML配置文件

    ### JAVA读取数据库的XML配置文件 #### 前言 在软件开发中,数据库配置信息的管理至关重要。随着技术的发展,出现了许多优秀的框架来帮助开发者处理这些任务,例如Hibernate等ORM(对象关系映射)工具,它们简化了...

Global site tag (gtag.js) - Google Analytics