更多请参考:自定义简单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;
}
}
分享到:
相关推荐
本人没分了,特别来分享一下,通用的XML读写工具类,同志们下下绝对不后悔
实际应用中,可以根据需求选择合适的解析方式,并封装成便捷的工具类,以提高代码的可读性和复用性。例如,js.XmlHelper可能是这样一个Java类,包含了XML的读取、写入、查找、修改等多种功能,方便在项目中调用。
在描述中提到的博客文章“一次代码重构之旅-快速读写xml文件工具类封装”,作者分享了如何通过Java进行XML操作的优化,将原始的XML处理代码整合到一个工具类中,提供简洁易用的API。在阅读该博客文章的过程中,我们...
TinyXml是C++中一个轻量级的XML解析库,主要...总的来说,TinyXml是一个简单易用的XML解析库,适用于C++项目中对XML数据进行快速读写的需求。它的轻量级设计和清晰的API使得在各种应用场景下都能够方便地集成和使用。
这些给定的文件名表明它们是Java编程语言中的工具类,用于处理XML配置文件的读取和管理。以下是对这些类可能包含的功能的详细解释: 1. **PortalConfig.java**:这个类可能专门用于处理与门户应用相关的配置信息。...
总之,TinyXML 是一个强大的工具,使得在 C++ 中处理 XML 文档变得简单。无论是读取现有的 XML 数据还是创建新的 XML 文档,通过理解和运用其提供的类和方法,开发者都能高效地进行 XML 编程。结合 Visual C++ 的...
它的简单API使得XML读写任务变得轻而易举,而且由于其小巧的体积,使得它成为嵌入式系统和资源有限环境的理想选择。在实际开发中,结合XML的灵活性和TinyXML的易用性,可以有效地实现数据持久化和跨平台的数据交换。
总之,"C++XML读写封装类"是C++开发中一个实用的工具,它简化了XML操作,提高了代码的可读性和可维护性。通过理解和使用这样的封装类,开发者可以更高效地处理XML数据,无论是在配置文件、数据交换还是序列化等方面...
总结起来,`CReadXml`类是一个方便的工具,简化了XML文件的读写流程,并且针对常见的错误状况进行了处理,确保了操作的可靠性和安全性。通过深入研究这个类的源代码,我们可以学习到如何优雅地处理XML文件,并了解在...
本篇文章将深入探讨一个基于Delphi实现的XML文件读写配置类——XMLIniFiles.pas。这个类库的设计目的是为开发者提供一种类似于传统的.INI文件的操作方式,但利用XML的强大功能。 首先,我们来理解一下XML文件的基本...
- Java中的XML读写: - DOM解析:使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类读取XML,`TransformerFactory`和`Transformer`进行写入。 - SAX解析:通过`org.xml.sax.XMLReader`...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、可扩展性和易于解析的特点广泛应用于各种软件开发中,包括...通过熟练掌握C#中的XML读写技术,可以有效提升开发效率和代码质量。
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
在描述中提到的"XML文件读写XML文件读写",这可能指的是C++程序如何使用这些库进行XML的读写操作。首先,你需要打开XML文件,然后使用库提供的函数解析XML内容。例如,使用TinyXML,你可以使用`TiXmlDocument::Load...
总的来说,这个项目提供了一个全面的XML处理实践,结合了自定义的XML读写封装和第三方库TinyXML的使用,还有理论知识的讲解,对提升XML相关技能大有裨益。如果你想要深入了解和应用XML,这个项目是一个很好的起点。...
这个"读写Xml类.rar"可能包含了这些API的封装,为开发者提供了更简单的接口来操作XML。例如,可能会有一个`XmlReader`类用于读取XML文件,通过调用`parseFile(String filePath)`方法;一个`XmlWriter`类用于写入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的核心概念。DOM4J提供了一个灵活的API,以树形结构表示XML文档。在DOM(Document ...