数据库、文件目录等都以下面方式配置,用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是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的方式来解析、创建、修改和操作XML数据。在本教程中,我们将深入探讨如何使用DOM4J...在实际项目中,DOM4J常被用于数据交换、配置文件读写等场景。
在实际开发中,DOM4J被广泛应用于配置文件读取、数据交换、Web服务等多种场景。 总的来说,`XMLTest.java`中的示例应该展示了DOM4J如何加载XML文件,获取元素和属性,以及进行简单的修改。通过对这个示例的学习,你...
1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...
### DOM4J读取XML详解 #### 初始化资源路径 代码片段中的`URL url = this.getClass().getClassLoader().getResource("/")`这一行是获取类加载器的根目录路径。这通常用于确定资源文件(如XML配置文件)的位置。在...
这篇名为"dom4j实战(一)——使用dom4j从XML中读取数据源配置"的博客文章将深入探讨如何利用DOM4J从XML文件中读取数据源配置。 首先,我们需要理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object ...
在实际开发中,DOM4J常用于读取配置文件、解析XML格式的数据交换,或者与Web服务交互。由于其优秀的性能和丰富的功能,DOM4J 1.6.1版本至今仍被许多开发者所采用,特别是在那些需要高效处理XML的项目中。 总之,DOM...
要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
在实际开发中,DOM4J常用于XML配置文件的读取、XML数据的交换、XML文件的生成等场景。例如,在Web服务开发中,它可以用来解析WSDL文件;在Spring框架中,用于读取和处理配置文件;在数据持久化领域,如Hibernate,它...
**正文** Dom4j是一个非常流行的Java库,用于处理XML文档。它提供了灵活且功能强大的API,使得XML的解析...在实际项目中,Dom4j常用于读取和解析配置文件,因为它的API简洁且易于理解,大大简化了XML数据的处理工作。
在实际开发中,DOM4J常用于读取XML配置文件、解析XML数据、生成XML报告等场景。例如,通过`Document`对象读取XML文件,然后使用`Element`和`XPath`来获取或修改数据。同时,DOM4J还提供了`Writer`接口,可以将XML...
在实际开发中,DOM4J常用于XML配置文件的读取、XML数据的交换、XML Web服务的客户端和服务端等场景。例如,在Spring框架中,DOM4J被用于解析配置文件,构建Bean的定义。通过理解并熟练使用DOM4J,开发者可以更高效地...
以下是一个简单的示例,展示如何使用DOM4J读取XML文档并查询元素: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4JExample { public ...
使用DOM4J读取XML文件的基本步骤如下: 1. 引入DOM4J和Jaxen的库:在项目中添加`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`的依赖。 2. 加载XML文件:使用`DocumentHelper.parseText()`或`DocumentBuilder.build()`...
配置文件在Java项目中通常用于设置应用的行为或参数,DOM4J可以用来解析这些XML配置文件。例如,你可以使用DOM4J的DocumentBuilderFactory和DocumentBuilder来创建一个解析器,然后通过这个解析器加载XML文件,得到...
3. **事件驱动解析(SAX)**:DOM4J也支持SAX解析器,适用于处理大型XML文件,因为它不需要一次性加载整个文件到内存,而是按事件逐行读取。 4. **DOM支持**:除了SAX,DOM4J还兼容DOM接口,使得已有的DOM代码可以...
7. 集成性:DOM4J与其他流行的Java框架,如Spring、Hibernate等有良好的集成,便于在这些框架中使用XML配置或数据交换。 8. 性能优化:尽管DOM4J基于DOM,但它对DOM进行了优化,减少了内存占用和提高了处理速度,使...
- **解析XML**:DOM4J支持SAX和DOM解析方式,可以根据需求选择合适的解析器读取XML文件。 - **创建XML**:可以方便地创建新的XML结构,包括元素、属性、注释等。 - **修改XML**:允许对已有的XML文档进行修改,如...
XML(eXtensible Markup Language)作为一种结构化数据格式,在网络应用、配置文件、数据交换等方面广泛应用,DOM4J作为其解析工具,为开发者提供了便利。 DOM4J的主要特点包括: 1. 易于使用:DOM4J的API设计直观...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们...