`
bo_hai
  • 浏览: 564619 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

XML 工具类分享

 
阅读更多
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

/**

* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作

* @author HX

*

*/

public class XmlManager {

	/**
	 * 
	 * 得到某节点下某个属性的值
	 * 
	 * @param element
	 *            要获取属性的节点
	 * 
	 * @param attributeName
	 *            要取值的属性名称
	 * 
	 * @return 要获取的属性的值
	 * 
	 * @author HX_2010-01-12
	 */

	public static String getAttribute(Element element, String attributeName) {

		return element.getAttribute(attributeName);

	}

	/**
	 * 
	 * 获取指定节点下的文本
	 * 
	 * @param element
	 *            要获取文本的节点
	 * 
	 * @return 指定节点下的文本
	 * 
	 * @author HX_2010-01-12
	 */

	public static String getText(Element element) {

		return element.getFirstChild().getNodeValue();

	}

	/**
	 * 
	 * 解析某个xml文件,并在内存中创建DOM树
	 * 
	 * @param xmlFile
	 *            要解析的XML文件
	 * 
	 * @return 解析某个配置文件后的Document
	 * 
	 * @throws Exception
	 *             xml文件不存在
	 */

	public static Document parse(String xmlFile) throws Exception {

		// 绑定XML文件,建造DOM树

		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

		DocumentBuilder db = dbf.newDocumentBuilder();

		Document domTree = db.parse(xmlFile);

		return domTree;

	}

	/**
	 * 
	 * 获得某节点下的某个子节点(指定子节点名称,和某个属性的值)<br>
	 * 
	 * 即获取parentElement下名字叫childName,并且属性attributeName的值为attributeValue的子结点
	 * 
	 * @param parentElement
	 *            要获取子节点的那个父节点
	 * 
	 * @param childName
	 *            要获取的子节点名称
	 * 
	 * @param attributeName
	 *            要指定的属性名称
	 * 
	 * @param attributeValue
	 *            要指定的属性的值
	 * 
	 * @return 符合条件的子节点
	 * 
	 * @throws Exception
	 *             子结点不存在或有多个符合条件的子节点
	 * 
	 * @author HX_2008-12-01
	 */

	public static Element getChildElement(Element parentElement,
			String childName, String attributeName, String attributeValue)
			throws Exception {

		NodeList list = parentElement.getElementsByTagName(childName);

		int count = 0;

		Element curElement = null;

		for (int i = 0; i < list.getLength(); i++) {

			Element child = (Element) list.item(i);

			String value = child.getAttribute(attributeName);

			if (true == value.equals(attributeValue)) {

				curElement = child;

				count++;

			}

		}

		if (0 == count) {

			throw new Exception("找不到个符合条件的子节点!");

		} else if (1 < count) {

			throw new Exception("找到多个符合条件的子节点!");

		}

		return curElement;

	}

	/**
	 * 
	 * 得到某节点下的某个子节点(通过指定子节点名称)<br>
	 * 
	 * 即获取parentElement下名字叫childName的子节点
	 * 
	 * @param parentElement
	 *            要获取子节点的父节点
	 * 
	 * @param childName
	 *            要获取的子节点名称
	 * 
	 * @return 符合条件的子节点
	 * 
	 * @throws Exception
	 *             找不到符合条件的子结点或找到多个符合条件的子节点
	 */

	public static Element getChildElement(Element parentElement,
			String childName) throws Exception {

		NodeList list = parentElement.getElementsByTagName(childName);

		Element curElement = null;

		if (1 == list.getLength()) {

			curElement = (Element) list.item(0);

		} else if (0 == list.getLength()) {

			throw new Exception("找不到个符合条件的子节点!");

		} else {

			throw new Exception("找到多个符合条件的子节点!");

		}

		return curElement;

	}

}

 

  分享一个操作XML的工具类。欢迎拍砖。

2
5
分享到:
评论

相关推荐

    XML读写工具类

    本人没分了,特别来分享一下,通用的XML读写工具类,同志们下下绝对不后悔

    一次代码重构之旅-快速读写xml文件工具类封装

    在IT行业中,代码重构是一项重要的技能,它有助于提高...总之,这次重构之旅旨在通过创建一个高效的XML工具类,提高代码的可复用性和性能。对于任何需要处理XML数据的Java开发者来说,这是一个值得学习和借鉴的案例。

    Java poi导入导出EXCEL工具类(兼容各版本)

    概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...

    绿色小巧的XML查看编辑工具

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在互联网上,尤其是在数据交换、存储和配置...为了更好地利用这类工具,建议用户了解XML的基本概念和语法规则,以便更好地发挥编辑工具的优势。

    Android开发中解析xml文件XmlUtils工具类与用法示例

    本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下: 1. xmlUtil工具类 package com.example.xmlpaserutil.util; import java.io.InputStream; import java.lang....

    Java工具类分享

    分享常用的Java工具类,包括:日期,邮件,ZIP压缩解压缩,XML,HTTP,JSON,Freemarker,文件操作,图象,数组,验证码,日期,硬件信息读取,数学计算,随机数,路径,反射,正则,运行时RUNTIME,系统,汉字转...

    java常用工具类集合(也有转自他人的)

    此外,这个集合可能还包含了一些特定场景的工具类,如XML解析、JSON转换、加密解密、HTTP请求等。这些工具类的使用可以大大提升代码的可读性和可维护性,同时减少了出错的可能性。 持续更新这部分代码库是非常重要...

    sms工具类调用阿里云短信服务

    本文将详细讲解如何构建这样的工具类,并分享相关的知识点。 1. **阿里云SDK引入** 在Java项目中使用阿里云短信服务,首先需要在项目中引入阿里云的SDK。通常,我们可以通过Maven或Gradle来管理依赖。对于Maven,...

    xml和matlab格式相互转换工具箱

    5. **简化复杂数据处理**:对于包含嵌套结构、复杂元素和属性的XML文件,工具箱能够正确地映射到MATLAB结构体,使得处理这类数据变得更加简单。 6. **错误检查与容错**:工具箱可能还包含了错误检查和异常处理机制...

    php xml解析类

    本文将详细探讨PHP中的XML解析类,并结合“php xml解析类”这一主题,分享相关的知识点。 首先,PHP提供了两种主要的XML解析方式:DOM(Document Object Model)和SimpleXML。DOM解析器提供了完整的XML文档对象模型...

    xml报文与对象间的转换

    最近做项目数据传输这块最后采用了xml报文的形式来进行传输,所以特地写了一个工具类分享出来,支持xml报文和java对象间的相互转换。采用的是JAXB的形式,可快速解析。具体步骤已经单独写了一个文档放进去了。

    JAVA生成WORD工具类

    这个“JAVA生成WORD工具类”很可能是提供了一种便捷的方式,帮助开发者通过Java代码来创建和操作Microsoft Word文档。下面我们将深入探讨如何在Java中实现Word文档的生成,并结合提供的标签“源码”和“工具”,分享...

    XML.rar_COM_DEMO_xml_xml 类_xml文件

    COM是一种微软开发的技术,允许不同的组件之间进行交互,而CMarkup类是用于解析和操作XML文档的一个工具,它简化了与XML文件的交互。 "markupclass_demo"是原版的示例代码,而"PMarkupDemo"则是基于这个原始代码的...

    JAVA常用工具类,一个五年开发经验的工程师上传的,但是要分我拿来1分让你们下载

    这个“Java常用工具类”压缩包,作为一个经验丰富的开发者分享的资源,无疑是提高开发效率、减少重复工作的好帮手。它可以帮助开发者快速集成和复用代码,减少错误,提高代码质量。在使用这些工具类时,注意阅读文档...

    java实现Xml与json之间的相互转换操作示例

    同时,可以通过编写相应的工具类来实现xml与json的转换,例如上述示例中提到的XmlExercise工具类就提供了xml字符串和xmlDocument转换为json字符串的功能,以及json字符串转换成xml字符串的功能。 4. 实例讲解:在...

    随便收集的工具类.rar

    8. **XML/JSON解析工具类**:用于解析XML或JSON格式的数据,如JDOM、DOM4J、Jackson、Gson等。 9. **数学计算工具类**:提供数学运算或统计分析功能。如Apache Commons Math。 10. **日志工具类**:提供统一的日志...

    分享一些java常用的工具类(源码) 非常实用

    java开发工作多年总结的的一些工具类; 包括有: 1、常用的日期类操作 2、excel操作 3、xml操作 4、集成科大讯飞语言合成工具类; 5、集合类操作(list,map,array) 6、FTP工具类 7、csv操作 8、file文件类操作 9...

    XML正则表达式工具

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件以及文档结构化描述中。...对于经常处理XML数据的IT从业者来说,熟练运用这类工具是提升专业技能的重要途径。

    poi工具类.rar

    在给定的“poi工具类.rar”压缩包中,我们可以预见到包含了一个专门针对POI 3.9版本的工具类,用于帮助开发人员更方便地处理Excel文件,并且能够将数据导出为PDF格式。这个工具类可能包含了设置页边距、背景颜色以及...

Global site tag (gtag.js) - Google Analytics