首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>Xml编程>资讯:新兴XML处理方法VTD-XML介绍

新兴XML处理方法VTD-XML介绍

www.jz123.cn  2008-11-10   来源:   中国建站    袁袁整理    我要投递新闻

VTD的超能力(一点都不夸张地说)就在于它能够将XML这种树形的数据结构简单的变换成对一个byte数组的操作,任何你能想象到的对于byte数组的操作都可以应用在XML上了。这是因为读取进来的XML是二进制的(byte数组),而VTD则记录了每个element的位置等访问用信息,当我们找到要操作的VTD的时候,只要用offset与length等信息就可以对原始byte数组进行任何操作,或者可以直接对VTD进行操作。举例来说,我想在一个大XML中找出一个element并删除它,那么我只需要找到这个element的VTD(遍历方法稍候再讲),将这个VTD从VTD数组中删除,然后再利用所有的VTD写出到另一个byte数组中就可以了,因为删除的VTD标明了要删除的element的位置,所以在新写入的byte数组中就不会出现这段element了,用VTD写入新的byte数组实际上就是一个byte数组的拷贝,其效率相当的高,这就是所谓的增量更新(incremental update)。

关于VTD-XML的遍历方式,它采用了LC (Location Cache),简单地说就是将VTD以其深度作为标准构建的一个树形的表结构。LC的entry也是64bits长的数值类型,前32bits代表一个VTD的索引(index),后32bits代表了这个VTD的第一个child的索引。利用这些信息就可以计算出任何一个你想要到达的位置了,关于具体的遍历方法请参看官方网站的文章。基于这种遍历方式的VTD-XML有与DOM不同的操作接口,这是可以理解的,并且,VTD-XML的这种遍历方式可以在最少的几步内将你带到你所需要的地方去,遍历的性能十分突出。

总结

就像你上面看到的,VTD-XML有着迷人的特性,而如今的1.5版本中已经加入了XPath的支持(只要可以遍历,就可以支持XPath,这是早晚的事:-)),它的实用性已经超越了当今我们所想象的范围了。另一个VTD-XML的超能力,就是基于它现在的处理方式,完全可以支持将来的Binary XML标准,并通过Binary化将XML的应用推向更高一层楼!这也是我目前所期待的!:-)

不过,VTD-XML仍然有许多需要改进与完善的地方,这方面值得我们努力与探讨。

顺便提一下,VTD-XML是开源项目(GPL),目前有Java、C两种平台支持。如果你想在.NET试一试的话建议你使用IKVM(BSD style license)将VTD-XML转换成.NET程序集,相信你会喜欢上它的!;-)

 

上一篇:利用XML实现通用WEB报表打印实际使用中的例子 下一篇:使用 XML 模板 (MSSQL手册)

评论总数:1 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图