`

dom4j读取配置数据

阅读更多
数据库、文件目录等都以下面方式配置,用dom4j解析之...
<domain>
        <branch>
              <key>variable</key>
              <value>the value</value> 
        </branch>
</domain>


所依赖的jar包:
dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar
如果不引入jaxen-1.1-beta-6.jar,在使用XPath获取节点获取时会引起下面的异常
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)

...


xml配置文件
	<!-- FTP目录配置 caoxh 20101126 -->
	<FtpPathConfig>
	
		<!-- 工单根目录 -->
		<KeyValueMapping>
			<Key>Root_cwmp</Key>
			<Value>/opt/adsl/cwmp</Value>
		</KeyValueMapping>

	</FtpPathConfig>


代码不解释

import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class FtpFileReader {

	private static final String configFileName = "config.xml";

	public static String getVariable8Map(String domain, String branch,
			String variable) {
		
		String retValue = "";
		
		try {
			Map keyValueMap = getKeyValueMap("//"+domain+"/"+branch);
			
			if(keyValueMap!=null){
				retValue = (String) keyValueMap.get(variable);
			}
			
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		
		return retValue;
	}

	public static Map getKeyValueMap(String xPath)  throws DocumentException{

		Map keyValueMap = new HashMap();

		InputStream ins = FtpFileReader.class.getResourceAsStream("/"+ configFileName);
		SAXReader reader = new SAXReader();
		Document doc = reader.read(ins);
		
		List list = doc.selectNodes(xPath);
		
		for (Iterator it = list.iterator(); it.hasNext();) {
			Node keyValueMappingConfig = (Node) it.next();
			Node keyNode = keyValueMappingConfig.selectSingleNode("Key");
			Node valueNode = keyValueMappingConfig.selectSingleNode("Value");
			String key = keyNode.getText();
			String value = valueNode.getText();
			
			keyValueMap.put(key, value);
		}
		
		return keyValueMap;
	}
	

	public static void main(String[] args) {
		
		String valule = getVariable8Map("FtpPathConfig","KeyValueMapping","Root_cwmp");
		
		System.out.println("from config.xml:"+valule);

	}
}

分享到:
评论

相关推荐

    dom4j 解析(读取) xml 节点数据

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的方式来解析、创建、修改和操作XML数据。在本教程中,我们将深入探讨如何使用DOM4J...在实际项目中,DOM4J常被用于数据交换、配置文件读写等场景。

    dom4j读取XML,解析XML简单示例

    在实际开发中,DOM4J被广泛应用于配置文件读取、数据交换、Web服务等多种场景。 总的来说,`XMLTest.java`中的示例应该展示了DOM4J如何加载XML文件,获取元素和属性,以及进行简单的修改。通过对这个示例的学习,你...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...

    DOM4J读取XML

    ### DOM4J读取XML详解 #### 初始化资源路径 代码片段中的`URL url = this.getClass().getClassLoader().getResource("/")`这一行是获取类加载器的根目录路径。这通常用于确定资源文件(如XML配置文件)的位置。在...

    dom4j实战(一)——使用dom4j从XML中读取数据源配置

    这篇名为"dom4j实战(一)——使用dom4j从XML中读取数据源配置"的博客文章将深入探讨如何利用DOM4J从XML文件中读取数据源配置。 首先,我们需要理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object ...

    dom4j_dom4j1.6.1安装包_

    在实际开发中,DOM4J常用于读取配置文件、解析XML格式的数据交换,或者与Web服务交互。由于其优秀的性能和丰富的功能,DOM4J 1.6.1版本至今仍被许多开发者所采用,特别是在那些需要高效处理XML的项目中。 总之,DOM...

    dom4j读写xml文档实例

    要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...

    dom4j dom4j dom4j dom4j

    在实际开发中,DOM4J常用于XML配置文件的读取、XML数据的交换、XML文件的生成等场景。例如,在Web服务开发中,它可以用来解析WSDL文件;在Spring框架中,用于读取和处理配置文件;在数据持久化领域,如Hibernate,它...

    Dom4j解析配置文件与xml小例子

    **正文** Dom4j是一个非常流行的Java库,用于处理XML文档。它提供了灵活且功能强大的API,使得XML的解析...在实际项目中,Dom4j常用于读取和解析配置文件,因为它的API简洁且易于理解,大大简化了XML数据的处理工作。

    dom4j-2.1.3.zip

    在实际开发中,DOM4J常用于读取XML配置文件、解析XML数据、生成XML报告等场景。例如,通过`Document`对象读取XML文件,然后使用`Element`和`XPath`来获取或修改数据。同时,DOM4J还提供了`Writer`接口,可以将XML...

    dom4j dom4j1.6 dom4j最新版

    在实际开发中,DOM4J常用于XML配置文件的读取、XML数据的交换、XML Web服务的客户端和服务端等场景。例如,在Spring框架中,DOM4J被用于解析配置文件,构建Bean的定义。通过理解并熟练使用DOM4J,开发者可以更高效地...

    dom4j-2.0.3.zip

    以下是一个简单的示例,展示如何使用DOM4J读取XML文档并查询元素: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4JExample { public ...

    dom4j的jar包(读取xml)

    使用DOM4J读取XML文件的基本步骤如下: 1. 引入DOM4J和Jaxen的库:在项目中添加`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`的依赖。 2. 加载XML文件:使用`DocumentHelper.parseText()`或`DocumentBuilder.build()`...

    dom4j配置文件例子

    配置文件在Java项目中通常用于设置应用的行为或参数,DOM4J可以用来解析这些XML配置文件。例如,你可以使用DOM4J的DocumentBuilderFactory和DocumentBuilder来创建一个解析器,然后通过这个解析器加载XML文件,得到...

    org.dom4j.jar

    3. **事件驱动解析(SAX)**:DOM4J也支持SAX解析器,适用于处理大型XML文件,因为它不需要一次性加载整个文件到内存,而是按事件逐行读取。 4. **DOM支持**:除了SAX,DOM4J还兼容DOM接口,使得已有的DOM代码可以...

    dom4j-1.6.1架包,读取xml

    7. 集成性:DOM4J与其他流行的Java框架,如Spring、Hibernate等有良好的集成,便于在这些框架中使用XML配置或数据交换。 8. 性能优化:尽管DOM4J基于DOM,但它对DOM进行了优化,减少了内存占用和提高了处理速度,使...

    dom4j.jar 下载

    - **解析XML**:DOM4J支持SAX和DOM解析方式,可以根据需求选择合适的解析器读取XML文件。 - **创建XML**:可以方便地创建新的XML结构,包括元素、属性、注释等。 - **修改XML**:允许对已有的XML文档进行修改,如...

    dom4j 2.1.1

    XML(eXtensible Markup Language)作为一种结构化数据格式,在网络应用、配置文件、数据交换等方面广泛应用,DOM4J作为其解析工具,为开发者提供了便利。 DOM4J的主要特点包括: 1. 易于使用:DOM4J的API设计直观...

    使用dom4j 和本地dom 解析xml 文件

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们...

Global site tag (gtag.js) - Google Analytics