这是一个共用的工具类,用于读取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>
分享到:
相关推荐
使用 XML 作为 Java 的配置文件有很多好处,从 Tomcat 的安装配置文件和 J2EE 的配置文件中,我们已经看到 XML 的普遍应用,让我们也跟随流行趋势用 XML 武装起来。 现在关键是如何读取 XML 配置文件?有好几种 XML...
在 Java 开发中,XML 配置文件的使用变得越来越普遍,许多项目都开始使用 XML 作为配置文件的格式,例如 Tomcat 的安装配置文件和 J2EE 的配置文件。使用 XML 作为配置文件有很多好处,例如可以轻松地更改配置项,而...
Java操作XML文件是Java开发中常见的一项任务,特别是在处理配置、数据交换或存储结构化信息时。XML(Extensible Markup Language)是一种标记语言,它的结构清晰、可读性强,易于机器解析和生成。本篇文章将深入探讨...
在 Java 项目中,数据库连接的配置是一个非常重要的步骤,为了方便用户配置数据库,使用 XML 配置文件可以灵活地修改数据连接。本文将详细介绍如何使用 XML 配置文件来连接数据库。 XML 配置文件 XML 配置文件是...
Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...
在实际项目中,为了更方便地操作XML文件,可以使用开源库如JDOM、DOM4J或Java的StaX API。这些库提供了更高级别的API,使得XML操作更为简洁和高效。 本项目中的"ReadAndWriteXml"可能包含了以上所述的读写操作的...
ParseXML类是XML配置文件的读取器,该类使用SAXParser解析XML文件并将配置信息存放在Properties对象中。 ParseXML类中,我们首先创建了一个SAXParserFactory对象,并使用该对象创建了一个SAXParser对象。然后,我们...
在Java编程中,XML文件常被用来存储配置信息,因为它具有良好的可读性和结构化特性。Spring框架就广泛使用XML来定义bean的依赖关系和配置。本篇文章将深入探讨如何在Java中读取XML配置文件,以及如何实现一个简易版...
在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或StAX(Streaming API for XML)等解析器来读取XML文件。这里提供的`ExecuteXmlUtil.java`文件可能包含了使用DOM解析器的示例代码...
idea统一java格式化xml文件
1. **创建XML配置文件**:首先,你需要创建一个XML文件,例如命名为`database_config.xml`。在文件中定义一个根元素,比如`<database>`,然后在其中包含具体的配置信息。例如: ```xml <driver>oracle.jdbc....
在Java编程中,读取XML文件并从中获取Oracle数据库连接是一项常见的任务,特别是在需要动态配置数据库连接信息的应用中。XML文件通常被用作配置文件,因为它具有良好的结构和可读性,适合存储像数据库连接这样的配置...
学习 Logback 包括理解如何配置 `logback.xml` 文件以满足项目需求,如何在代码中使用 SLF4J API 来记录日志,以及如何管理和优化日志输出,比如控制日志文件大小、滚动策略等。对于 Java 开发者来说,熟练掌握 ...
文件配置
6. **反向操作**:如果需要将Java对象转换回XML,可以创建`Marshaller`,然后调用`Marshaller.marshal()`方法将Java对象写入XML文件。 在描述中提到的DTO(数据传输对象)是软件设计模式中的一种,用于在系统组件...
Java解析XML配置文件是开发过程中常见的一项任务,特别是在基于Java的框架中,如Spring,大量使用XML文件来存储配置信息。DOM4J是Java中一个非常流行且功能强大的XML处理库,它提供了丰富的API用于读取、写入、修改...
在Java编程中,读取本地XML文件是常见的数据操作任务,尤其在处理配置信息、存储结构化数据或进行数据交换时。这篇博文链接虽然没有提供具体的内容,但我们可以通过一般的方法来详细讲解如何在Java中读取XML文件信息...
在Java编程中,生成XML文件是一项常见的任务,特别是在数据存储、配置管理或数据交换的应用场景。XML(eXtensible Markup Language)是一种结构化数据格式,具有良好的可读性和易于解析的特点。本教程将深入讲解如何...
Java 使用 JDOM 解析 XML 文件 Java 是一种广泛使用的程序设计语言,而 XML 是一种广泛使用的标记语言,用于存储和传输数据。在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和...
- 接着,使用DOM解析XML文件,获取配置信息。 - 结合Excel和XML数据,根据预定义的模板生成Java测试类。 - 最后,运行生成的测试文件,验证配置是否正确。 这个Demo将帮助开发者理解如何在Java中处理Excel和XML...