`

有关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文件读写

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

    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文件中oracle数据库连接

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

    Logback类库含logback.xml配置文件

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

    java pom.xml文件配置

    文件配置

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    6. **反向操作**:如果需要将Java对象转换回XML,可以创建`Marshaller`,然后调用`Marshaller.marshal()`方法将Java对象写入XML文件。 在描述中提到的DTO(数据传输对象)是软件设计模式中的一种,用于在系统组件...

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

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

    java读取本地xml文件信息

    在Java编程中,读取本地XML文件是常见的数据操作任务,尤其在处理配置信息、存储结构化数据或进行数据交换时。这篇博文链接虽然没有提供具体的内容,但我们可以通过一般的方法来详细讲解如何在Java中读取XML文件信息...

    java_动态生成XML文件

    在Java编程中,生成XML文件是一项常见的任务,特别是在数据存储、配置管理或数据交换的应用场景。XML(eXtensible Markup Language)是一种结构化数据格式,具有良好的可读性和易于解析的特点。本教程将深入讲解如何...

    java 使用JDOM解析xml文件.docx

    Java 使用 JDOM 解析 XML 文件 Java 是一种广泛使用的程序设计语言,而 XML 是一种广泛使用的标记语言,用于存储和传输数据。在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和...

    解析excel、xml配置文件&&输出java测试文件Demo

    - 接着,使用DOM解析XML文件,获取配置信息。 - 结合Excel和XML数据,根据预定义的模板生成Java测试类。 - 最后,运行生成的测试文件,验证配置是否正确。 这个Demo将帮助开发者理解如何在Java中处理Excel和XML...

Global site tag (gtag.js) - Google Analytics