`
Sev7en_jun
  • 浏览: 1225346 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
84184fc0-d0b6-3f7f-a3f0-4202acb3caf5
Apache CXF使用s...
浏览量:111301
社区版块
存档分类
最新评论

简单XML读写工具类

阅读更多

更多请参考:自定义简单XML的读与存,便捷工具类

 

import java.io.File;
import java.io.FileWriter;
import java.io.StringWriter;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
 * XML工具类
 * 
 */
public class XMLUtils {

	/**
	 * 返回格式化的XML字段串
	 * 
	 * @param document
	 *            要格式化的文档
	 * @param encoding
	 *            使用的编码,如果为null刚使用默认编码(gb2312)
	 * @return 格式化的XML字段串
	 */
	public static String toXMLString(Document document, String encoding) {
		if (encoding == null) {
			encoding = "gb2312";
		}
		StringWriter writer = new StringWriter();
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("gb2312");
		XMLWriter xmlwriter = new XMLWriter(writer, format);
		try {
			xmlwriter.write(document);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return writer.toString();
	}

	/**
	 * 返回格式化的XML字段串
	 * 
	 * @param element
	 *            要格式化的节点元素
	 * @param encoding
	 *            使用的编码,如果为null刚使用默认编码(gb2312)
	 * @return 格式化的XML字段串
	 */
	public static String toXMLString(Element element, String encoding) {
		if (encoding == null) {
			encoding = "gb2312";
		}
		StringWriter writer = new StringWriter();
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding(encoding);
		XMLWriter xmlwriter = new XMLWriter(writer, format);
		try {
			xmlwriter.write(element);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return writer.toString();
	}

	/**
	 * 格式化文档并输出到文件
	 * 
	 * @param document
	 *            要输出的文档
	 * @param filename
	 *            XML文件名
	 * @param encoding
	 *            使用的编码,如果为null刚使用默认编码(gb2312)
	 * @return true or false
	 */
	public static boolean toXMLFile(Document document, String filename,
			String encoding) {
		if (encoding == null) {
			encoding = "gb2312";
		}
		boolean returnValue = false;
		try {
			XMLWriter output = null;
			/** 格式化输出,类型IE浏览一样 */
			OutputFormat format = OutputFormat.createPrettyPrint();
			/** 指定XML字符集编码 */
			format.setEncoding(encoding);
			output = new XMLWriter(new FileWriter(new File(filename)), format);
			output.write(document);
			output.close();
			/** 执行成功,需返回1 */
			returnValue = true;
		} catch (Exception ex) {
			ex.printStackTrace();
			returnValue = false;
		}
		return returnValue;
	}

	/**
	 * 格式化XML文件并保存
	 * 
	 * @param srcFileName
	 *            源XML文件
	 * @param desFileName
	 *            格式化后的XML文件,如果为null,则使用srcFileName
	 * @param encoding
	 *            使用的编码,如果为null刚使用默认编码(gb2312)
	 * @return true or false
	 */
	public static boolean toXMLFile(String srcFileName, String desFileName,
			String encoding) {
		if (encoding == null) {
			encoding = "gb2312";
		}
		if (desFileName == null) {
			desFileName = srcFileName;
		}
		boolean returnValue = false;
		try {
			SAXReader saxReader = new SAXReader();
			Document document = saxReader.read(new File(srcFileName));
			XMLWriter output = null;
			/** 格式化输出,类型IE浏览一样 */
			OutputFormat format = OutputFormat.createPrettyPrint();
			/** 指定XML字符集编码 */
			format.setEncoding(encoding);
			output = new XMLWriter(new FileWriter(new File(desFileName)),
					format);
			output.write(document);
			output.close();
			/** 执行成功,需返回1 */
			returnValue = true;
		} catch (Exception ex) {
			ex.printStackTrace();
			returnValue = false;
		}
		return returnValue;
	}

	/**
	 * 从读取XML文件
	 * 
	 * @param fileName
	 * @return Document对象
	 */
	public static Document read(String fileName) {
		SAXReader reader = new SAXReader();
		Document document = null;
		try {
			document = reader.read(new File(fileName));
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return document;
	}

	/**
	 * 从XML字符串转换到document
	 * 
	 * @param xmlStr
	 *            XML字符串
	 * @return Document
	 */
	public static Document parseText(String xmlStr) {
		Document document = null;
		try {
			document = DocumentHelper.parseText(xmlStr);
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return document;
	}
}
1
0
分享到:
评论

相关推荐

    XML读写工具类

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

    xml读写帮助类

    实际应用中,可以根据需求选择合适的解析方式,并封装成便捷的工具类,以提高代码的可读性和复用性。例如,js.XmlHelper可能是这样一个Java类,包含了XML的读取、写入、查找、修改等多种功能,方便在项目中调用。

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

    在描述中提到的博客文章“一次代码重构之旅-快速读写xml文件工具类封装”,作者分享了如何通过Java进行XML操作的优化,将原始的XML处理代码整合到一个工具类中,提供简洁易用的API。在阅读该博客文章的过程中,我们...

    c++读取xml工具类TinyXml

    TinyXml是C++中一个轻量级的XML解析库,主要...总的来说,TinyXml是一个简单易用的XML解析库,适用于C++项目中对XML数据进行快速读写的需求。它的轻量级设计和清晰的API使得在各种应用场景下都能够方便地集成和使用。

    xml文件的配置读取工具类

    这些给定的文件名表明它们是Java编程语言中的工具类,用于处理XML配置文件的读取和管理。以下是对这些类可能包含的功能的详细解释: 1. **PortalConfig.java**:这个类可能专门用于处理与门户应用相关的配置信息。...

    使用tinyxml 读写xml文件方法

    总之,TinyXML 是一个强大的工具,使得在 C++ 中处理 XML 文档变得简单。无论是读取现有的 XML 数据还是创建新的 XML 文档,通过理解和运用其提供的类和方法,开发者都能高效地进行 XML 编程。结合 Visual C++ 的...

    XML读写tinyxml

    它的简单API使得XML读写任务变得轻而易举,而且由于其小巧的体积,使得它成为嵌入式系统和资源有限环境的理想选择。在实际开发中,结合XML的灵活性和TinyXML的易用性,可以有效地实现数据持久化和跨平台的数据交换。

    C++XML读写封装类

    总之,"C++XML读写封装类"是C++开发中一个实用的工具,它简化了XML操作,提高了代码的可读性和可维护性。通过理解和使用这样的封装类,开发者可以更高效地处理XML数据,无论是在配置文件、数据交换还是序列化等方面...

    封装好的读写XML的类

    总结起来,`CReadXml`类是一个方便的工具,简化了XML文件的读写流程,并且针对常见的错误状况进行了处理,确保了操作的可靠性和安全性。通过深入研究这个类的源代码,我们可以学习到如何优雅地处理XML文件,并了解在...

    自己写的delphi下xml文件读写配置类

    本篇文章将深入探讨一个基于Delphi实现的XML文件读写配置类——XMLIniFiles.pas。这个类库的设计目的是为开发者提供一种类似于传统的.INI文件的操作方式,但利用XML的强大功能。 首先,我们来理解一下XML文件的基本...

    xml读写

    - Java中的XML读写: - DOM解析:使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类读取XML,`TransformerFactory`和`Transformer`进行写入。 - SAX解析:通过`org.xml.sax.XMLReader`...

    关于xml读写

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、可扩展性和易于解析的特点广泛应用于各种软件开发中,包括...通过熟练掌握C#中的XML读写技术,可以有效提升开发效率和代码质量。

    读写超大类xml文件,使用dom4j读写xml文件的工具类

    基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。

    XML.rar_C++读写xml_c xml_xml_xml文件读写_xml读写

    在描述中提到的"XML文件读写XML文件读写",这可能指的是C++程序如何使用这些库进行XML的读写操作。首先,你需要打开XML文件,然后使用库提供的函数解析XML内容。例如,使用TinyXML,你可以使用`TiXmlDocument::Load...

    xml读写项目总结

    总的来说,这个项目提供了一个全面的XML处理实践,结合了自定义的XML读写封装和第三方库TinyXML的使用,还有理论知识的讲解,对提升XML相关技能大有裨益。如果你想要深入了解和应用XML,这个项目是一个很好的起点。...

    读写Xml类.rar

    这个"读写Xml类.rar"可能包含了这些API的封装,为开发者提供了更简单的接口来操作XML。例如,可能会有一个`XmlReader`类用于读取XML文件,通过调用`parseFile(String filePath)`方法;一个`XmlWriter`类用于写入XML...

    C# XML读写类算法及源码

    一个简单的XML读写类可能包含以下方法: ```csharp public class XMLReadWrite { public void WriteXML(string filePath, string rootName, Dictionary, string> data) { XDocument doc = new XDocument( new ...

    xml-dom4j解析工具类

    这个“xml-dom4j解析工具类”显然是为了简化XML文档操作而设计的,它利用DOM4J库来处理XML数据。 首先,让我们详细了解一下DOM4J的核心概念。DOM4J提供了一个灵活的API,以树形结构表示XML文档。在DOM(Document ...

Global site tag (gtag.js) - Google Analytics