XML 问题: MochiKit
改进 XML 的 DOM 操作
是一种有用的高端库。主要受到和标准库提供
的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的
尤其方便,能够以比原始更友好的方式处理对象。大部分都
是针对文档定制的,如果与和结合在一起,使用包装的微格
式尤其方便。
简介
我最近的客座专栏作家围绕着、微格式和 提出了一些有趣的观点,我
认为值得进一步探讨。首先,本文介绍了在其关于纤格式的文章中提到的一种很好
的!库(请参阅参考资料):"#$的。对
(从技术上说是!)的基本功能提供了一些出色的改进,多数源于对$的
函数性编程的喜好,以及对丰富的标准库和灵活的结构的钟爱。使用进行
编程,不少开发人员认为在很多方面就像是使用更加友好的语言。
为何使用?
本专栏的读者知道,中的“”在很大程度上是因为%#浏览器中的!实现或
多或少支持%&!文档对象模型()规范。(根据具体的浏览器版本,“少”可能超过
“多”。)这仅仅是一种美妙的说法,说代码自动具有和'(文档解析器,
并且有一套遍历、搜索和修改这类文档的抽象结构的$调用。看起来配合得非常自然,
美中不足的是是一种极其可怕的$。虽然您可能争论说在这类功能强大、静态
类型、高度结构化、小心封装的语言中——我们程序员称之为拘谨、讲纪律的语言,保持
了%&!的形式,但是在!这种比较敏捷的语言中没有理由这么做。
读者可能要问何必去管呢,既然已经把工作简化了?无论如何,)
本质上仅仅是一种原生的数据结构(有趣的是恰好也是有效的),仍然
比较弱小。不管怎么说,还保留着一些优势。一方面就表示而言,可以直接用
!*(级联样式表*)设置样式。当然,可以将)转换成可设置样式的对象,但
本质上说只不过是又回到了或'(。另一方面,和)相比,除了!
解释器本身以外有更多的工具支持。数据可能来自——或者返回——使用定义结
构化数据的服务器。有时候,这些遵循众所周知的、精心定义的模式,包括遵守那些
已发布的标准。如果整个通信流中其他某些系统希望使用+,、- 、$或者
某种#标准通信,就没有必要再额外增加一层)了。
简单的戏法
幸运的是,是根据%&!的目标打造的,即为抽象文档结构提供一种
$ , 把 %&! 中 简 单 的 东 西 变 得 更 加 简 单 , 困 难 的 东 西 变 得 不 那 么 困 难 。
真正的魔法在于它在方法调用过程中积极而灵活地把各种对象类型强制转换
成正确的类型,包括在递归过程中。认为,只要明显正确的事情,就没有必要让