XML解析器的比较
作者:胡朝晖
我们知道,XML不象HTML,它本身是不关心应用程序如何展示它的内容的,而关于内容的展示形式可以由CSS或者XSL来指定。所以一个良好的XML解析器还需要对CSS和XSL进行分析处理。
当前的XML解析器性能一览:
| IBM XML4JApache Xerces | Sun Project X | Microsoft MSXML | Oracle XML Parser for Java | James Clark XP | |
| 对文档是否有良好格式的检查 | + | + | + | + | + |
| 文档有效性检查 | + | + | + | + | - |
| XML Schema支持 | + | - | - | - | - |
| 名字空间(Namespaces)支持 | + | + | + | + | - |
| XSL-T | 通过LotusXSL实现对XSLT的支持 | - | + | + | - |
| Java | + | + | - | + | + |
| Win32 | 通过Java实现 | 通过Java实现 | 通过Java实现 | + | - |
| SAX 1.0 | + | + | + | + | + |
| SAX 2.0 | + | - | + | - | - |
| DOM Level 1 1.0 | + | + | + | + | - |
| DOM Level 2 1.0 | + | - | - | - | - |
| 是否开放源码 | + | - | - | - | + |
| 下载地址 | 下载一 下在二 |
下载 |
下载 | 下载 | 下载 |
解析器的不同不仅在于它们是否支持完整性检查和文档表现形式转化,而且还在于它处理文档的方式。基于事件的解析器实际上是通过串行的方式来处理文档的,也就是说当它遇到一个开始或者结束标记的时候,它向应用程序发送消息,由应用程序决定如何进行处理。SAX就是这样的一个API集合。第二种方法就是根据文档的内容建立一个层次的数据结构,这就是DOM API的工作方式。实际上,一个解析器的质量的好坏的评定标准在于它对XML标准的支持程度。当前最好的是Sun的解析器。

