XmlHelper类中封装的方法,采用JDOM实现。
如下所示:
/**
* 输出XML文件流。根据指定的编码,将输入的节点,输出到输出流中。
* @param xml XML文件流
* @return xml JDOM树的根节点,如果XML格式错误,返回空(null)
* @throws JDOMException
*/
public static void output(Writer writer, Element root, String encoding) {
encoding = (encoding == null ? UTF8 : encoding);
Document doc = new Document(root);
XMLOutputter outputter = new XMLOutputter();
Format format = Format.getPrettyFormat();
format.setEncoding(encoding);
outputter.setFormat(format);
try {
writer.write(outputter.outputString(doc));
} catch (IOException e) {
throw new SystemException(String.format("输出节点[%s]时出现错误。", root.toString()));
} finally {
try {
writer.close();
} catch (IOException e) {
logger.warn("关闭输出流时出现错误。", e);
}
}
}
//将节点数据提取成Text字符串返回
public static String getElementText(Element element){
if (element != null) {
Element tempElement = (Element) element.clone();
StringWriter sw = new StringWriter();
XmlHelper.output(sw, tempElement, null);
String s = sw.toString();
}
return null;
}
/**
* 传入XML字符串,返回XML的根节点。
* @param xml XML字符串
* @return xml JDOM树的根节点,如果XML格式错误,返回空(null)
* @throws JDOMException
* @throws IOException
*/
public static Element getRootFromString(String xml) throws JDOMException,
IOException {
if (xml == null) {
return null;
}
LogWriter.debug(logger, "XmlHelper getRootFromString xml=" + xml);
Document doc = null;
SAXBuilder builder = new SAXBuilder(); //解析器
doc = builder.build(new StringReader(xml));
if (doc != null) {
return doc.getRootElement();
}
return null;
}
调用示例:
String styleText= XmlHelper.getElementText(element);
Element root = XmlHelper.getRootFromString(styleText);
相关推荐
Java使用正则表达式提取XML节点内容的方法示例 Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作...
C#作为.NET框架的主要编程语言,提供了丰富的API来处理XML文档,包括读取、写入、修改XML的节点和属性。本篇文章将深入探讨如何在C#中操作XML文件,尤其是读取XML节点和属性。 首先,我们来了解基本的XML结构。XML...
本篇文章将详细解释如何使用C#来读取XML文件中的所有节点以及如何在特定节点下增加或删除元素。 #### 二、读取XML节点数据 **1. 加载XML文档** 要开始读取XML文件,首先需要加载文件到`XmlDocument`对象中: ```...
节点则包括元素节点、属性节点、文本节点等,节点值是指元素或属性的文本内容。 在Java中,我们可以使用DOM(Document Object Model)或者SAX(Simple API for XML)解析XML文件。DOM将整个XML文件加载到内存中,...
在Delphi编程环境中,XML(eXtensible Markup Language)是一种常用的数据交换格式,用于存储和...在实际项目中,你可能还需要根据需求进行更复杂的XML处理,如XPath查询或XSLT转换,但这已经超出了当前话题的范围。
总的来说,QT为XML处理提供了强大的支持,通过QDomDocument和相关类,我们可以灵活地操作XML文档,实现自定义的节点和键值对。这在处理结构化数据和配置文件时非常有用,尤其是在需要跨平台的项目中。只要熟练掌握...
例如,`XMLNodeType.Element`表示这是一个元素节点,而`XMLNodeType.Text`表示这是一个文本节点。 - **读取节点名称**:通过`Name`属性可以获取当前节点的名称。例如,如果当前节点是`<city>Chongqing</city>`,...
当我们处理XML文档时,有时需要获取特定节点的属性和文本内容。本文将深入探讨如何在不同的编程环境中获取XML节点的属性和文字。 在Python中,我们可以使用`xml.etree.ElementTree`库来解析和操作XML。首先,我们...
首先,我们需要了解XML文档的基本结构,XML文档由元素(Element)、属性(Attribute)、文本(Text)等节点组成。`XmlDocument`类提供了一种树形结构的方式来表示这些节点。以下是一段示例XML文档: ```xml ...
XML 文档由元素、属性、文本和注释等组成,其中元素是最基本的构建块,用于表示数据。 2. **LINQ to XML 简介** LINQ to XML 提供了 C# 和 Visual Basic 中的一组类,这些类允许开发者以声明性方式处理 XML。与...
在这个“xml.zip”压缩包中,我们关注的是XML动态节点的排序处理,这涉及到JavaScript在HTML环境中对XML数据的操作。下面将详细探讨这一主题。 1. **XML基础**: - XML是一种自定义标记语言,它允许用户创建自己的...
这些表达式会返回对应XML节点的文本值。 总的来说,`SimpleXmlGetter`类提供了一种优雅的方式来访问和检索XML文档中的数据,使得操作XML节点变得简单直观。通过这个类,你可以轻松地导航到XML树的任何深度,并获取...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的方式来解析、创建、修改和操作XML数据。在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你...
Qt5是一个强大的跨平台应用程序开发框架,它提供了丰富的API来支持XML处理,包括解析、创建、修改和查询XML文档。本篇文章将深入探讨Qt5如何使用DOM(Document Object Model)模型来操作XML文件,实现增、删、改、查...
在C#编程中,动态加载XML文件并修改节点属性值是一项常见的任务,特别是在处理配置文件、数据存储或与XML相关的应用程序交互时。本教程将深入探讨如何实现这一目标,包括XML文档的加载、查找特定节点、修改属性以及...
方便对xml中任意节(多个同名节点)点属性进行获取、设置。 /// /// 设置指定节点的属性 /// /// <param name="xmlContent">xml结构 /// 父节点 /// 父节点所处同名节点的位置 为0表明只有一个该节点 /// ...
XPath是W3C标准,提供了访问XML文档的强大方式,包括选择节点、属性和文本。 在PowerBuilder中,我们可以使用XML对象来操作XML文件。这个例子中,开发者创建了一个通用的函数或过程,能够接收一个XPath表达式作为...
这种模型允许开发者通过编程方式访问文档的不同部分,例如元素、属性和文本节点等。 #### 三、处理同名节点 在XML文档中,同名节点指的是具有相同标签名称的多个节点。例如,在一个书籍目录中,可能有多个`<title>`...
在实际应用中,通常会使用微软提供的XML库,如MSXML或.NET Framework中的System.Xml命名空间,这些库提供了更强大、更安全的XML处理功能。例如,`System.Xml.XmlDocument`类可以方便地解析和操作XML文档,而无需手动...
DOM树将XML文档的每个部分映射为一个节点,包括元素节点、属性节点、文本节点等。通过遍历这个树形结构,我们可以访问和修改XML文档的任何部分。 "可添加删除修改xml节点"则意味着我们需要具备对DOM树进行操作的...