package com.thinkive.base.config;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.Element;
import com.thinkive.base.util.StringHelper;
import com.thinkive.base.util.XMLHelper;
public class Configuration
{
private static Logger logger = Logger.getLogger(Configuration.class);
private static Map items = new HashMap();
private static String CONFIG_FILE_NAME = "configuration.xml";
static
{
loadConfig();
}
/**
* 读入配置文件
*/
private static void loadConfig()
{
try
{
Document document = XMLHelper.getDocument(Configuration.class, CONFIG_FILE_NAME);
if (document != null)
{
Element systemElement = document.getRootElement();
List catList = systemElement.elements("category");
for (Iterator catIter = catList.iterator(); catIter.hasNext();)
{
Element catElement = (Element) catIter.next();
String catName = catElement.attributeValue("name");
if (StringHelper.isEmpty(catName))
{
continue;
}
List itemList = catElement.elements("item");
for (Iterator itemIter = itemList.iterator(); itemIter.hasNext();)
{
Element itemElement = (Element) itemIter.next();
String itemName = itemElement.attributeValue("name");
String value = itemElement.attributeValue("value");
if (!StringHelper.isEmpty(itemName))
{
items.put(catName + "." + itemName, value);
}
}
}
}
}
catch (Exception ex)
{
logger.error("", ex);
}
finally
{
}
}
/**
* 获得字串配置值
*
* @param name
* @return
*/
public static String getString(String name)
{
String value = (String) items.get(name);
return (value == null) ? "" : value;
}
/**
* 获得字串配置值,若为空,则返回缺省值
*
* @param name
* @param defaultValue
* @return
*/
public static String getString(String name, String defaultValue)
{
String value = (String) items.get(name);
if (value != null && value.length() > 0)
return value;
else
return defaultValue;
}
/**
* 获得整型配置值
*
* @param name
* @return
*/
public static int getInt(String name)
{
String value = getString(name);
try
{
return Integer.parseInt(value);
}
catch (NumberFormatException ex)
{
return 0;
}
}
/**
* 获得整型配置值
*
* @param name
* @return
*/
public static int getInt(String name, int defaultValue)
{
String value = getString(name);
try
{
return Integer.parseInt(value);
}
catch (NumberFormatException ex)
{
}
return defaultValue;
}
/**
* 获得布尔型配置值
*
* @param name
* @return
*/
public static boolean getBoolean(String name)
{
String value = getString(name);
return Boolean.valueOf(value).booleanValue();
}
/**
* 获得双精度浮点数配置值
*
* @param name
* @return
*/
public static double getDouble(String name, double defaultValue)
{
String value = getString(name);
try
{
return Double.parseDouble(value);
}
catch (NumberFormatException ex)
{
}
return defaultValue;
}
public static Map getItems()
{
return items;
}
}
相关推荐
在这个范例中,我们将深入探讨如何使用 `XMLConfiguration` 类来读取XML配置文件,并从中提取数据。 XML配置文件是一种常见的存储应用程序设置的方式,因为它们结构清晰,易于人类阅读和编辑。`XMLConfiguration` ...
本篇文章将深入探讨如何在C#中读取XML配置文件。 首先,让我们了解XML配置文件的基本结构。一个简单的XML配置文件可能如下所示: ```xml <?xml version="1.0" encoding="utf-8"?> <Configuration> </...
XML配置文件的处理使用`XMLConfiguration`类。同样,通过指定文件路径,可以创建配置实例并获取配置信息。 2. **写入XML配置文件** 添加、修改XML配置使用`setProperty()`方法,删除则使用`removeProperty()`。保存...
本教程将详细介绍如何使用Python读取XML文件,并提供一个具体的代码示例。 在Python中,我们可以使用内置的`xml`模块来处理XML文件,特别是`xml.etree.ElementTree`子模块,它提供了方便的API来解析和操作XML文档。...
在Wince上读取XML文件,可以使用C#的System.Xml命名空间中的类,如`XmlDocument`或`XDocument`。以下是一个使用`XmlDocument`的例子: ```csharp using System.IO; using System.Xml; public void ReadXmlFile...
// 读取XML文件 DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse("databaseConfig.xml"); ...
首先,JDOM是Java Document Object Model的简称,它是一个为Java设计的XML API,提供了对XML文档的全面处理能力,包括创建、修改和读取XML文档。JDOM的优点在于它的API完全基于Java,使得开发者可以更加直观地理解和...
要读取XML文件,可以使用XmlDocument的Load方法。以下是一个基本示例: ```csharp XmlDocument doc = new XmlDocument(); doc.Load("configXML.xml"); ``` 这会加载名为"configXML.xml"的文件到doc对象中,...
在本案例中,Hibernate被用来读取XML文件中的省市区数据,并将这些数据插入到相应的数据库表中。 实现这个功能的过程大致如下: 1. **配置Hibernate**:首先,我们需要在项目中引入Hibernate的依赖库,并配置...
public void open(Configuration parameters) throws Exception { // 初始化解析器等资源 } @Override public MyDataModel map(String value) throws Exception { // 解析 JSON 并提取字段 ObjectMapper ...
`XmlReader`只读取XML的当前位置,不存储整个文档,而`XmlWriter`则用于创建或追加XML内容,两者都支持流式处理,减少内存占用。 6. **XML配置文件**:在WinForm应用中,经常使用XML文件作为配置文件,存储应用设置...
首先,`CXMLCfg.cpp`、`CXMLCfg.h`文件很可能包含了TinyXML2的封装类或函数,用于简化XML文档的读取和写入。在这个类中,可能会有如`LoadXMLFile`和`SaveXMLFile`这样的方法用于加载和保存XML文件,以及`...
Commons Configuration 使用`XMLConfiguration`类来处理XML配置文件。它支持XPath表达式,允许你通过路径定位到特定的配置元素。此外,XMLConfiguration还具备递归解析嵌套元素的能力,这对于大型复杂应用来说非常...
以下是一个简单的示例,展示了一个名为`clsGetProfile`的VBScript类,该类用于读取XML配置文件中的特定键值对: ```vbscript Class clsGetProfile ' ルートドキュメント Private rootDoc ' xmlファイル名とセク...
读取XML文件时,我们需要使用DOM4J的`DocumentBuilder`来解析XML文件并生成`Document`对象。之后,可以遍历`Document`的元素树,获取所需的信息。例如: ```java import org.dom4j.Document; import org.dom4j....
这里,`XMLConfiguration` 类能够解析 XML 文件并提供对节点和属性的访问,如 `getList()` 和 `getInt()` 方法。 **Apache Commons Configuration**: Apache Commons Configuration 提供了一种统一的方式来处理...
如果你需要在Web服务中使用这个文件,你可以读取其内容并根据需要构建XML响应。例如,你可以使用`System.IO.File`类来读取文件内容: ```csharp string filePath = Server.MapPath("mes_esb-测试用.xml"); // 获取...
- `XmlReader`: 用于高效的只进式读取XML数据,不保存整个文档。 - `XmlWriter`: 用于生成XML数据,支持流式写入。 3. **使用XmlDocument操作XML** - 加载XML:`XmlDocument doc = new XmlDocument(); doc.Load...