
最近,我写了
一篇文章,陈述了XML数据岛(data
island)的益处,尽管这篇受到了广泛的好评,但是很多读者指出:XML数据岛只能够和微软的Internet Explorer一起使用。由于这个平台的局限性,也有可能是因为数据岛是由微软开发的,所以XML的数据岛注定到现在这个时候还是个非标准的工具集。幸运的是,这样的情形在另一个能够处理XML数据岛的浏览器出现之后就终止了。所以,在安装了Mozilla,具备了良好的JavaScript知识,并大概了解了现实状况之后,我决定着手自己解决问题,为让Mozilla能够处理XML数据岛提供一个解决方案。
由于时间的限制,我决定把范围限制到数据岛的下列特性上。在所有的使用中,这些特性占到了95%的比例:
- 将非制表的HTML INPUT标签绑定到XML节点上
- 将非制表的HTML DIV标签绑定到XML节点上
- 将非制表的HTML SPAN标签绑定到XML节点上
- 将HTML TABLE标签绑定到XML数据岛上
- 将制表的HTML INPUT标签绑定到XML节点上
- 将制表的HTML DIV标签绑定到XML节点上
- 将制表的HTML SPAN标签绑定到XML节点上
概括一下就是:如果更改某个HTML INPUT对象的值,那么相对应的XML节点的值就会发生改变。尽管一眼看上去让Mozilla能够支持XML数据岛就像是巫术,但是这可以通过使用层叠样式表(CSS)、JavaScript和第一级的HTML文档对象模型(HTML
Document Object Model Level 1)来实现。
现在就开始
由于Mozilla没有内置对XML数据岛的支持,所以在碰到有XML的网页时,它就无法正确地生成文本。所以,除非采取措施,否则像Listing A里这样的数据岛就会被显示成为图A这样的。在这个地方CSS就有了用武之地。你可以使用CSS来隐藏数据岛的XML(Listing B)。这个过程的其它步骤要通过JavaScript和DOM的联合使用来处理。
图A
