`
qindongliang1922
  • 浏览: 2189133 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117681
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126079
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60034
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71405
社区版块
存档分类
最新评论

轻松解析XML的工具类

    博客分类:
  • Xml
阅读更多
在我们的各种项目中,XML文件读取与解析非常频繁,正是因为有了XML文件,才使得我们的程序架构更加灵活,我们可以将我们的一些动态变化的数据,分离到到XML的配置文件里,比如说数据库的配置,项目一些重要参数的配置等等,散仙每次接触一个新的开源的工程,基本都会发现,在它的根目录下少不了的东西,就是各种XML文件,比如Hadoop,Solr或者Nutch等等。

如果你的项目中也需要,频繁解析各种XML配置,那么Apache Commons Configuration
是一个不错的选择。

下面是散仙将给出,一个简单的基本的测试demo。

需要解析的xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!-- config标签是根标签,必须要添加的 -->
<config>

<person>
<id>10010</id>
<name>张三</name>
<address>上海</address>
<address>北京</address>
<info  time="2014年5月"  count="100" >内容部分测试1</info>
<info  time="2014年6月"  count="200" >内容部分测试2</info>
<info  time="2014年7月"  count="300" >内容部分测试3</info>
</person>

</config>


测试 的代码如下:

package com.testxmlparse;
import java.util.List;

import org.apache.commons.configuration.XMLConfiguration;


/***
 * 解析xml的类
 * @author qindongliang
 * 
 * 
 * **/
public class ParseXML {
	
	
	public static void main(String[] args) throws Exception{
		 loadxml();
	}
	
	public  static void loadxml() throws Exception{
  
		 XMLConfiguration config = new XMLConfiguration();
		 config.setDelimiterParsingDisabled(true);
		 config.load("test.xml");
		  
		 //获取单个属性的值
		 System.out.println(config.getString("person.id"));
		 System.out.println(config.getString("person.name"));
		 
		 //System.out.println(config.getString("person.address"));
		 
		 //获取多个相同的标签值
		 List<String> list=config.getList("person.address");
		 System.out.println(list);
		 
		 
		 //获取属性的值, 注意写法
		 //获取标签的值
		 System.out.println(config.getString("person.info"));
		 //获取属性的时间
		 System.out.println(config.getString("person.info[@time]"));
		 //获取属性的数量
		 System.out.println(config.getString("person.info[@count]"));
		 
		 
		 
		 //获取多个属性的值的集合
		 
		 List<String> attributes=config.getList("person.info[@time]");
		 
		 System.out.println("日期集合: "+attributes);
		 
		 
		 List<String> attributes2=config.getList("person.info[@count]");
		 
		 System.out.println("数量集合: "+attributes2);
		 
		 
		 
		 
		 
		 

	}

}

程序的运行结果如下所示:
10010
张三
[上海, 北京]
内容部分测试1
2014年5月
100
日期集合: [2014年5月, 2014年6月, 2014年7月]
数量集合: [100, 200, 300]


使用这个工具包,可以简单快捷的解析我们的XML文件,需要用到的必须的jar包如下所示:



后面,附上所用的jar包,有需要的朋友可以下载使用!
  • 大小: 88.9 KB
分享到:
评论
2 楼 qindongliang1922 2014-05-05  
aiyoaiyo0330 写道
散仙 我想问一下 如果我想读取两个person 代码应该怎么写 使用config.getDocument()?

这样可以获取多个实体
 NodeList node=config.getDocument().getElementsByTagName("person");


NodeList是java自带操作xml的对象,然后就是正常的遍历,解析,取数据了。
1 楼 aiyoaiyo0330 2014-05-05  
散仙 我想问一下 如果我想读取两个person 代码应该怎么写 使用config.getDocument()?

相关推荐

    java Dom4j 无敌连环解析XML工具类

    使用这个工具类,我们可以轻松地解析XML文件并获取所需信息。例如,以下代码展示了如何使用XMLUtil找到XML文档中特定元素的值: ```java String xmlFilePath = "path_to_your_xml_file.xml"; Document document = ...

    vtd-xml XML解析工具

    在Java环境中,XimpleWare公司提供的VTD-XML库包含了一系列API,如`VTDGen`用于解析XML文档并生成VTD索引,`AutoPilot`用于导航XML结构,以及`VTDNav`接口,它是核心的导航类,提供了各种方法来访问和操作XML元素和...

    MFC 解析XML类和Markup解析XML文件实例

    在Microsoft Foundation ...通过这些类,开发者可以轻松地解析XML文件,操作XML数据,并响应XML事件,从而实现更灵活的程序设计。理解并熟练掌握这些类的使用,对于在Windows平台上开发涉及XML处理的应用程序至关重要。

    解析xml的jar包

    总之,JDOM为Java开发者提供了便利的XML处理工具,通过其丰富的API可以轻松地解析、创建和修改XML文档。无论你是新手还是经验丰富的开发者,理解JDOM的工作原理及其核心功能,都将极大地提升你在处理XML任务时的效率...

    dom4j 工具类 使用例子

    在Java中,DOM4J作为解析XML的工具类,相比标准的Java DOM API,其API更简洁易用,功能更加强大。它可以很好地融入Java项目,尤其在需要频繁进行XML操作时,DOM4J的性能和便利性都得到了广大开发者的好评。 总的来...

    java的xml和json相互转换工具类,亲测直接用

    本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...

    XML报文解析工具

    此XML解析工具设计时考虑了性能,能够快速地读取、解析XML文档,有效地提取所需数据,从而提高系统响应速度。 3. **跨平台兼容性**:尽管主要针对STM32,但“跨平台”标签表明该工具可能也支持其他微控制器或操作...

    DOM4J xml解析工具

    1. **解析XML文档**:DOM4J可以使用SAX或DOM方式解析XML文件。SAX是事件驱动的解析器,适用于大文件,而DOM解析会将整个文档加载到内存,适合小文件。DOM4J的灵活性在于,可以根据需求选择合适的解析策略。 2. **...

    使用JDOM解析XML文件

    通过SAXBuilder或DOMBuilder解析XML,结合XPath查询,我们可以轻松地读取、修改和保存XML数据。在实际应用中,根据项目需求选择合适的解析策略,如需处理大量数据,可考虑使用更优化的XML处理库。

    XML解析工具

    在进行二次开发时,你可以创建一个XML工具类,封装上述的常用方法,提供统一的接口供其他部分代码调用。例如,可以实现以下功能: - 读取XML文件并返回根节点。 - 按XPath查询节点集合。 - 添加、删除或修改指定路径...

    通过xsd产生C#实体类解析XML或生成XML

    本教程将详细介绍如何使用XSD文件生成C#实体类,以便于解析XML数据和生成XML文档。 首先,我们需要一个XSD文件,它定义了XML文档的结构和数据类型。XSD文件使用元素、属性和约束来描述XML文档的结构。例如,一个...

    xstream轻松解析xml到java对象

    然而,处理XML数据时,解析和转换为可操作的对象是一个常见挑战。这时,XStream库就派上了用场。XStream是一个Java库,它能将Java对象序列化为XML,同时也能将XML反序列化为Java对象,极大地简化了XML处理过程。 ...

    XML解析器,用于解析XML文件

    TinyXML是一个开源的、轻量级的C++库,用于解析XML文档。它提供了简单易用的API,允许开发者在C++程序中轻松地读取、写入和操作XML数据。TinyXML的优点包括小巧、易于集成、跨平台,适合小型项目和学习XML解析。 ...

    tinyxml2解析XML文件读取数据

    本项目“tinyxml2解析XML文件读取数据”主要关注如何使用tinyxml2库来高效地解析XML文件并提取其中的数据。以下将详细介绍tinyxml2库的关键功能和使用方法。 1. **tinyxml2库介绍** - tinyxml2提供了DOM(Document...

    Java解析XML.zip

    本压缩包“Java解析XML.zip”包含了两个关键的第三方库:jaxen-1.1.1.jar和dom4j-1.6.1.jar,它们是Java解析XML文件的重要工具。 首先,让我们了解一下**DOM4J**。DOM4J是一个强大的Java XML API,它提供了灵活且高...

    一个小型的XML解析工具包

    1. 解析器类:实现DOM或SAX解析策略,对外提供解析XML文件的方法。 2. Document类:表示XML文档的抽象对象,包含整个XML树的结构。 3. Node类:表示XML树中的节点,包括元素、文本、注释等类型。 4. Element类:表示...

    用Stax组装及解析XML

    使用StAX解析XML文档则需要借助`XMLInputFactory`和`XMLStreamReader`类完成。下面是一个简单的例子: ```java XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory....

    XML解析jar

    在Java中,解析XML文件是常见的任务,本篇将详细讲解三种常用的XML解析器:DOM4J、SAX2R2以及JAXB。 1. DOM4J: DOM4J是一个强大的Java库,它提供了对XML的全面支持,包括读取、写入、修改和操作XML文档。DOM4J基于...

    IOS版本XML解析类

    3. **命名空间处理**:XML文档中常常包含多个命名空间,GDataXML提供了解析和处理命名空间的功能,使得处理带有命名空间的XML文档变得轻松。 4. **错误处理**:GDataXML在解析过程中会捕获并报告错误,这有助于调试...

    XMLParser(XML解析代码 C++版)

    XMLParser是一种用于解析XML文档的C++实现,它旨在提供简单、小巧且稳定的解决方案,以处理XML数据。XML,即可扩展标记语言,是用于存储和传输数据的标准格式,广泛应用于配置文件、数据交换和文档结构化等领域。XML...

Global site tag (gtag.js) - Google Analytics