把数据转换成XML格式的好处_XML/RSS

    我们常常会碰到需要处理以各种格式(从以逗号或者制表符做分隔符的文件到更负载的格式)保存或者传输的数据的情况,对每一种格式你都需要对应的解析器(parser)。这一缺点减缓了开发进度,而且可能会导致错误的发生。一个解决方案就是把常用格式的数据转化成XML文档,然后对它进行保存、处理或者转换成其它格式。

一个实例

现在已经有好多种实现在软件内部或者软件之间进行数据保存、导出、导入以及传输功能的数据格式。最常见的是定界格式(delimited format),如逗号或者制表符分隔数据格式以及定长数据格式。假设我们有一个地址簿程序,该程序提供把数据导出成逗号分隔以及固定长度这两种格式的功能。

在逗号分隔格式中,用逗号来分隔同一个数据记录中的不同字段,如清单A所示。而在固定长度数据格式中,记录的每一个字段都应该有一个标准长度。清单B给出了一个固定长度格式的地址簿。

创建XML文档

现在,让我们解析输入数据并把它转换成XML文档。XML文档(即org.w3c.dom.Document)是全部文档对象模型(DOM)的原始数据类型,并且它提供了对文档数据的访问。

你可以用执行buildDocument(InputStream is)方法来创建与你的数据对应的文档,如代码清单C所示。该方法逐行读取输入数据流,并根据给定格进行来逐行分析。

如果你想解析分界格式数据,你需要创建构造函数为PlainTextToXmlFormatter(String[ ] colName,String delim)的类的实例,其分界符可以是任何字符串。在固定长度格式的情况下,你应该使用第二种构造函数PlainTextToXmlFormatter(String[ ] colName,int[ ] colLen),它的一个参数为字段长度数组。在我们所给的地址簿例子中,各字段的长度分别为10、10、30以及10个字符。参数colName是保存了目标数据记录的名字的数组,在我们给出的这个例子中,名字分别为名(firstName)、姓(lastName)、email以及电话号码(phone)。

把数据行转换为数据符号的实际解析过程也就是执行getStringArray(String read,String delim)或者parseFixedLengthMessage(String read,int[ ] colLen)方法的过程。其返回值是一个String型数组,这个数组是上述两个方法把给定输入进行分解而得来的。如果数据格式不对,就会抛出一个例外并且终止解析过错。调用setSkipError(true)方法就可以忽略例外并完成数据解析过程。调用这个方法可以防止抛出例外,但它仍允许程序向错误输出流打印错误信息。

当行被解析成标记后,它们作为XML文档的元素而加入到XML文档之中。放入到元素之中的每一行记录都有一个默认的名字line,你也可以调用setDataLineName()来指定名字。每一个数据记录都是一个列元素,列元素的名字由相应的类构造函数提供,子元素加到行元素之中。

在输入数据完全读取之后,你就得到了一个有效的XML文档,你可以进一步处理这个文档。现在,由于数据是按众所周知的树状结构来组织的,因此处理它非常简单。例如,你可以把这个文档送交给第三方,只要第三方知道该文档的文档类型定义(Document Type Definition ,DTD),那么他就可以很容易的处理文档了。你还可以调用writeDocument(Document doc,OutputStream osOut)方法来保存这个文档。代码清单D就给出一个把XML文档保存到一个文件中的例子。

用XSLT转换来查看数据

你还可以把XML数据转换成其它格式,并用不同的视图来表示其内容。最简单的方法就是使用XSLT转换,它提供了一种强大的面向树的转换语言实现,可以把使用一种词汇表的XML实例转换成简单文本、HTML或者使用其它词汇表的XML。

对给定的XML输入,你可以用XSLT语言来创建你所期望的输出。例如,通过执行transformData(InputStream xmlIn,InputStream xslIn,OutputStream transfOut),你就可以把XML数据转换成一个HTML文档。代码清单E提供了XSLT转换的一个例子,而清单F给出了地址簿条目的HTML视图。

简化对数据的管理

在本文中,我们通过分析PlainTextToXmlFormatter类而学会了如何把常用格式数据转换成XML文档。我们还看到了如何借助于XSLT转换而用不同的视图来表示XML文档。当你需要处理各种格式的数据时,采纳上述技术或许就就是一个好的解决方案,从而节省了你的宝贵时间并减少了出错的可能性。

时间: 2024-11-24 04:37:12

把数据转换成XML格式的好处_XML/RSS的相关文章

怎样将数据转换成固定格式的xml文件

问题描述 我使用的数据库是db2,我想将其中的一个表的数据转换成固定格式的xlm文件.请问用asp怎样实现. 解决方案 解决方案二:asp可以灵活的操作XML文件你将数据读取出来,按自己的想法生成XML即可操作XML的具体方法,网上大把

把图象文件转换成XML格式文件_XML/RSS

把图象文件转换成XML格式文件 利用.NET 框架下的FromBase64String和ToBase64String方法可以很容易地实现图象文件和XML文件的互换.这样可以轻易解决以XML格式保存图片的问题.代码如下: Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() InitializeComponent(

java-extjs 树的问题,加载不出来,后台是用Java到数据读取的数据转换成json格式

问题描述 extjs 树的问题,加载不出来,后台是用Java到数据读取的数据转换成json格式 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@include file="common/common.jsp"%> <% pagemenustr += "addBtn(tb,'" + I18n.getText(&

xml-C# 如何将纯文本TXT转换成XML格式

问题描述 C# 如何将纯文本TXT转换成XML格式 想做一个小的demo 学习中遇到一点小问题 请大神指导 通过一个简单的转换 不求转换精准 解决方案 public partial class FrmTxtXml : Form { String txtContent = String.Empty; // public FrmTxtXml() { InitializeComponent(); } //打开txt文件 private void toolStripOpen_Click(object s

sql server-FOR XML如何将两张表(一对多)的数据分开显示成xml格式

问题描述 FOR XML如何将两张表(一对多)的数据分开显示成xml格式 各位大神请赐教,膜拜~~~ 要求用FOR XML 转换成如下格式的xml 表一HH HID HNAME HVALUE 1 AA 一二三 2 BB 四五六 表二DD HID DID DNAME DVALUE 1 1 张三 跳绳 1 2 李四 体操 2 3 王二 游泳 2 4 赵武 跑步 表一和表二的ID为1对多的关系. 解决方案 servlet读取xml格式的post数据

C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法_C#教程

在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的所有成员,也就意味着可以替不同的类型,创建更通用的方法.这个例子是这样做的:利用反射,读取一个类型的所有属性,然后再把属性转换成XML元素的属性或者子元素.下面注释比较完整,就话不多说了,有需要看代码吧! using System; using System.Collections.Generic;

PHP中将数组转成XML格式的实现代码_php技巧

下面是网上的 复制代码 代码如下: class ArrayToXML { /** * The main function for converting to an XML document. * Pass in a multi dimensional array and this recrusively loops through and builds up an XML document. * * @param array $data * @param string $rootNodeName

了解WEB页面工具语言XML(五)好处_XML/RSS

五.XML带来的好处 1更有意义的搜索 数据可被XML唯一的标识.没有XML搜索软件必须了解每个数据库是如何构建的.这实际上是不可能的因为每个数据库描述数据都是不同的.有了XML书就可以很容易以标准的方式按照作者.标题.ISBN序号或其他的标准分类.搜索书就变得十分方便. 2开发灵活的Web应用软件 数据一旦建立XML能被发送到其他应用软件.对象或者中间层服务器做进一步地处理.或者它可以发送到桌面用浏览器浏览.XML和HTML.脚本.公共对象模式一起为灵活的三层Web应用软件的开发提供了所需的技

for xml 语句 把查询结果转换成xml格式 以及差查询 暑假第四天

1. 我们可以吧sql查询结果 保存成一个xml格式   select * from  table     FOR XML   RAW       /  AUTO                        模式有2中 AUTO   RAW  生成的xml格式不同   2.  差查询    EXCEPT     select * from *     EXCEPT    select * from *                          作用是吧第一个查询结果中 去除掉  与后面