一个实例
如今已经有好多种实如今软件内部也许软件之间举行数据保留、导出、导入以及传输功用的数据花样。最常见的是定界花样(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文档。当你须要处置惩罚种种花样的数据时,采用上述手艺也许就就是一个好的解决方案,从而节省了你的宝贵时间并减少了失足的可能性。
以上就是细致引见把数据转换成XML花样的优点的内容,更多相关内容请关注ki4网(www.ki4.cn)!