`

有关java用XML文件的配置

    博客分类:
  • XML
阅读更多
这是一个共用的工具类,用于读取xml文件
//:com.huanglq.util.Configuration.java
package com.huanglq.util;

/**
 * @author huanglq
 *用java本身提供的xml-api来解析xml文件(DOM)
 * TODO 读取 xml文件的结点值
 */
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Configuration {
    /**
     * @param filePath xml文件路径
     * @param parentTagName 要读取的结点的父结点
     * @param name 要读取的结点名
     * @return 结点值
     */
    public static String getConfigValue(String filePath,String parentTagName,String name){
      //  String nodeValue[] =new String[2];
        String nodeName ="";//节点名
        String nodeValue="";//节点值
        try {

            NodeList list = xmlToDoc(filePath,parentTagName);

            try {
               //遍历文件的节点
                for (int i = 0; i < list.getLength(); i++) {
                    Node n = list.item(i);// list.item(i);返回集合中的第 index 个项
                    NodeList child_nl = n.getChildNodes();//getChildNodes();返回包含此节点的所有子节点的 NodeList

                    //遍历根节点的子节点
                    for (int j = 0; j < child_nl.getLength(); j++) {
                        nodeValue ="";
                         //getNodeType() 表示基础对象的类型的节点,类型是short
                         //Node.TEXT_NODE该节点为 Text 节点(static short)
                         //节点类型不为short的
                        if (child_nl.item(j).getNodeType() != Node.TEXT_NODE) {
                            // 如果child_nl中有节点名为name
                            if(child_nl.item(j).getNodeName().trim().equals("name")){
                                //获得name节点中的值
                                nodeName = child_nl.item(j).getFirstChild().getNodeValue().trim(); 
                            }
                            //如果name节点中的值有等于传入的name的值,而且name节点下的节点名为value的
                             else if(nodeName.equals(name) && child_nl.item(j).getNodeName().trim().equals("value")){
                               //把name节点下的第一个节点名为value的值传给nodeValue
                                nodeValue = child_nl.item(j).getFirstChild().getNodeValue().trim();
                                 break;
                             }  
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return  nodeValue;
    }

/*  url 是xml文件的路径,tagName在这里是根节点下面的节点,
      本方法返回tagName节点下的节点集*/
    private static NodeList xmlToDoc(String url, String tagName) throws Exception {
        DocumentBuilderFactory dbf = null;
        DocumentBuilder db = null;
        Document doc = null;
        NodeList n1 = null;

        dbf = DocumentBuilderFactory.newInstance();
        db = dbf.newDocumentBuilder();
        doc = db.parse(url);
        n1 = doc.getElementsByTagName(tagName);
       // getElementsByTagName(tagName)按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList
        return n1;
    }
   
   //测试
    public static void main(String args[]){
        String a =getConfigValue("refeshKeyword.xml","refeshKeyword","Server2");
       //这里返回节点为refeshKeyword下name为Server2的value
        System.out.print(a+"----");
    }
}

///:~
xml文件可以随便写个,这里只是个例子
测试中xml文件:refeshKeyword.xml
<?xml version="1.0" encoding="GBK" standalone="no"?>

<refesh>
	<database>
		<name>drive</name>
		<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
		<name>url</name>
		<value>jdbc:microsoft:sqlserver://localhost1433;DatabaseName=huanglq_Query</value>
		<name>url2</name>
		<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=huanglq_Other</value>
		<name>username</name>
		<value>xxxxxxxxxx</value>
		<nampassword</name>
		<value>xxxxxxxxx</value>
	</database>
	<refeshKeyword>
		<name>Top</name>
		<value>500</value>
		<name>ServerCount</name>
		<value>2</value>
		<name>Server1</name>
		<value>/usr/work/keyword.txt</value>
		<name>Server2</name>
		<value>/usr/work2/keyword.txt</value>
		<name>TxtCount</name>
		<value>2</value>
		<name>Txt1</name>
		<value>/usr/work3/keywordXX.txt</value>
		<name>Txt2</name>
		<value>/usr/work4/keywordXX.txt</value>
	</refeshKeyword>
</refesh>
分享到:
评论

相关推荐

    使用Java读取XML配置文件

    使用 XML 作为 Java 的配置文件有很多好处,从 Tomcat 的安装配置文件和 J2EE 的配置文件中,我们已经看到 XML 的普遍应用,让我们也跟随流行趋势用 XML 武装起来。 现在关键是如何读取 XML 配置文件?有好几种 XML...

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

    在 Java 开发中,XML 配置文件的使用变得越来越普遍,许多项目都开始使用 XML 作为配置文件的格式,例如 Tomcat 的安装配置文件和 J2EE 的配置文件。使用 XML 作为配置文件有很多好处,例如可以轻松地更改配置项,而...

    java 操作xml文件(包含xml文件和对应jar包)

    Java操作XML文件是Java开发中常见的一项任务,特别是在处理配置、数据交换或存储结构化信息时。XML(Extensible Markup Language)是一种标记语言,它的结构清晰、可读性强,易于机器解析和生成。本篇文章将深入探讨...

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

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

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    java读取xml文件

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

    JAVA-配置生成XML文件和FTP上传程序

    本项目名为"JAVA-配置生成XML文件和FTP上传程序",其主要目标是利用JAVA来实现XML文件的动态生成以及通过FTP(File Transfer Protocol)进行文件传输。这个程序具有高度的可配置性,使得对同类型的XML文件生成和FTP...

    java实现Xml文件读写

    在实际项目中,为了更方便地操作XML文件,可以使用开源库如JDOM、DOM4J或Java的StaX API。这些库提供了更高级别的API,使得XML操作更为简洁和高效。 本项目中的"ReadAndWriteXml"可能包含了以上所述的读写操作的...

    java处理xml文件

    Java处理XML文件是Java开发中的常见任务,XML(Extensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储以及文档结构化等场景。本篇将详细讲解Java处理XML的相关知识点,主要涵盖以下几个...

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

    ParseXML类是XML配置文件的读取器,该类使用SAXParser解析XML文件并将配置信息存放在Properties对象中。 ParseXML类中,我们首先创建了一个SAXParserFactory对象,并使用该对象创建了一个SAXParser对象。然后,我们...

    java读取 配置 xml文件

    在Java编程中,XML文件常被用来存储配置信息,因为它具有良好的可读性和结构化特性。Spring框架就广泛使用XML来定义bean的依赖关系和配置。本篇文章将深入探讨如何在Java中读取XML配置文件,以及如何实现一个简易版...

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

    在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)等解析器来读取XML文件。这里提供的`ExecuteXmlUtil.java`文件可能包含了使用DOM解析器的示例代码...

    idea统一java格式化xml文件

    idea统一java格式化xml文件

    XML配置文件连接Oracle数据库

    1. **创建XML配置文件**:首先,你需要创建一个XML文件,例如命名为`database_config.xml`。在文件中定义一个根元素,比如`&lt;database&gt;`,然后在其中包含具体的配置信息。例如: ```xml &lt;driver&gt;oracle.jdbc....

    java另存为下载xml

    本主题将深入探讨如何在Java中实现“另存为”下载XML文件的功能,以及如何进行文件操作,如保存、打开和删除。 首先,我们从第一步开始:下载XML文件到本地。这通常涉及到网络I/O操作,可以使用Java的`java.net.URL...

    java操纵xml文件的读写,并根据xml生成树型菜单

    本文将详细介绍如何使用Java进行XML文件的读写操作,并基于读取到的数据生成树型菜单,以方便用户浏览和操作。 #### 二、关键概念解释 1. **XML文件**: 一种结构化数据存储的语言,用于标记电子文档。 2. **DOM ...

    Java读取xml文件中oracle数据库连接

    在Java编程中,读取XML文件并从中获取Oracle数据库连接是一项常见的任务,特别是在需要动态配置数据库连接信息的应用中。XML文件通常被用作配置文件,因为它具有良好的结构和可读性,适合存储像数据库连接这样的配置...

    Logback类库含logback.xml配置文件

    学习 Logback 包括理解如何配置 `logback.xml` 文件以满足项目需求,如何在代码中使用 SLF4J API 来记录日志,以及如何管理和优化日志输出,比如控制日志文件大小、滚动策略等。对于 Java 开发者来说,熟练掌握 ...

    java pom.xml文件配置

    文件配置

Global site tag (gtag.js) - Google Analytics