在不同格式的XML文档之间相互转换(一)基本转换
2010-11-17 22:31
239 查看
本文将试着讨论不同格式XML文档之间相互转换的主题,比如怎样把格式化的纯数据转换成HTML文档,VML文档,或其他格式的XML文档,进一步,如何按每个具体的要求从源数据(元素/文本/属性)动态计算出目标数据(元素/文本/属性),再进一步,如何为生成的目标数据搭载特定的js代码,更进一步,如何使目标数据成为它的容器元素乃至父页面的 一部分,并实现动态交互。最后,如何做好垃圾清理工作,尤其对于数据更新频繁的容器,能否及时清除过期的文档结构和对象引用,同时又不影响新装入新内容和生成新对象。
一个XML文档转换工具至少应该具备两部分功能,模板和寻址。模板用来用来定义目标文档的结构,寻址功能负责在源文档中按指定路径返回数据,将寻址结果插入模板的特定位置,然后解析模板,生成目标文档,这个过程可以实现数据的静态转换。如下面代码。
源文档和模板文档
转换代码
转换结果
模板文档中中attribute元素用来生成目标文档中特定元素的属性,foreach元素负责遍历源文档中特定元素的集合。
代码运行试验,下载上一篇日志里的压缩包,解压,在test001.hta文件的同级目录下建立xmltest文件夹,将源文档存为student.src.xml,目标文档存为student.tpl.xml,然后拷贝转换代码到test001.hta中,运行,就可以看到转换结果了。
一个XML文档转换工具至少应该具备两部分功能,模板和寻址。模板用来用来定义目标文档的结构,寻址功能负责在源文档中按指定路径返回数据,将寻址结果插入模板的特定位置,然后解析模板,生成目标文档,这个过程可以实现数据的静态转换。如下面代码。
源文档和模板文档
student.src.xml<?xml version="1.0" encoding="utf-8"?> <students> <student sn="001"> <name>张三</name> <age>19</age> </student> <student sn="002"> <name>李四</name> <age>20</age> </student> <student sn="003"> <name>王五</name> <age>18</age> </student> </students> | student.tpl.xml<?xml version="1.0" encoding="utf-8"?> <template rootname="table"> <attribute name="border" value="1" /> <element name="tr"> <attribute name="bgcolor" value="#6699FF" /> <element name="td"> <text>学号</text> </element> <element name="td"> <text>姓名</text> </element> <element name="td"> <text>年龄</text> </element> </element> <foreach base="/student"> <element name="tr"> <element name="td"> <text path="." attr="sn" /> </element> <element name="td"> <text path="./name" /> </element> <element name="td"> <text path="./age" /> </element> </element> </foreach> </template> |
var srcdoc = $System.XML.XMLUtil.loadXMLFile("xmltest\\student.src.xml"); var tpldoc = $System.XML.XMLUtil.loadXMLFile("xmltest\\student.tpl.xml"); var tdoc = $System.XML.XMLUtil.XDOC.transformDoc(srcdoc , tpldoc); $("div005").innerHTML = tdoc.xml;
转换结果
模板文档中中attribute元素用来生成目标文档中特定元素的属性,foreach元素负责遍历源文档中特定元素的集合。
代码运行试验,下载上一篇日志里的压缩包,解压,在test001.hta文件的同级目录下建立xmltest文件夹,将源文档存为student.src.xml,目标文档存为student.tpl.xml,然后拷贝转换代码到test001.hta中,运行,就可以看到转换结果了。
相关文章推荐
- 在不同格式的XML文档之间相互转换(二)加工源数据
- xml和JSON格式相互转换的Java实现
- 十六进制颜色值域RGB格式颜色值之间的相互转换
- 利用XStream在Java对象和XML之间相互转换
- 转换XML文档的模板类及模板文档格式
- C#对象与XMl文件之间的相互转换
- Json、JavaBean、Xml之间的相互转换
- 在C#中int,string等各种类型之间的相互转换--现在写点技术文档
- Anakia 转换xml文档为其他格式
- Flex 中 xml 与 ArrayCollection 之间的相互转换
- xStream完美转换XML、JSON xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换; 前面有介
- 文档格式之间的转换使用
- js时间戳与日期格式之间相互转换
- 用php实现xml与json之间的相互转换
- 在线完成DOC等格式文档与PDF文件的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- 不同格式 图片间的 相互转换!
- Dom4j中String 、Document 、文件类型的xml之间的相互转换
- Windows/DOS与Unix文件格式之间的相互转换(/r/n问题)
- java将XML文档转换成json格式数据