最近学习XML解析的时候有一些困惑,看材料都说JAXP、DOM、SAX都只是接口而已,而这些接口必须使用Xerces之类的解析器来实现但是我使用JAXP的时候,并没有指定任何解析器,也没有引入Xerces等解析器的jar包,照样可以成功的解析XML是否J2se1.6已经内置有一个XML解析器呢,如果有的话这个解析器是哪种的呢?
解决方案 »
- 内容相同的字符串常量在内存在是否只有一份拷贝?
- 通过Java得到的时间与操作系统时间不一致,如何修改Java虚拟机时间?
- 值传递还是引用传递,这个怎么解释?
- 面对大数据量同步的困惑
- 用正则表达式如何取出这样的内容?
- 我只设定了两行两列, 为什么运行后TextArea大的象猪头一样, 没道理呀 :(...
- 大家一般到哪儿下载<<thinking in java >>第二版,以及类似的IT书籍
- 哪位有用java实现ftp的源程序,急用
- ★★★有关窗体间数据通讯的问题,希望能有好的见解。★★★
- 求用JDBC-ODBC 连接MS SQL的实例?
- 如何使用鼠标的滚轮实现图形的放大与缩小
- 关于sql语句的一个问题,有点难度
至于楼主说的JAXP,实际上严格说来,JAXP 是 API,但更准确地说是抽象层。它没有提供解析 XML 的新方法,没有添加到 SAX 或 DOM,也没有为 Java 和 XML 处理提供新功能。但是,JAXP 使得使用 DOM 和 SAX 来处理一些困难任务变得更容易。
详细请看:
http://www.ibm.com/developerworks/cn/xml/x-jaxp/
里面提到“JAXP 的早期版本中,Sun 包括 JAXP API(带有刚才提到的六个类和一些常用于转换的类)和 一个叫做 Crimson 的解析器。Crimson 是 com.sun.xml 软件包的一部分。在 JAXP 的新版本中 —— 包括在 JDK 中 —— Sun 已经重新包装了 Apache Xerces 解析器(参阅 参考资料)。在这两种情况下,虽然解析器是 JAXP 发行版的一部分,但不是 JAXP API 的一部分。可以认为是 JDOM 附带了 Apache Xerces 解析器。该解析器不是 JDOM 的一部分,但由 JDOM 使用,所以包括它是为了确保 JDOM 可以即装即用。同一原则适用于 JAXP,但并未明确公布:JAXP 附带解析器是为了可以立即使用。”简单的说,就是新版Java类库中已经内置有Xerces,而Jaxp是默认调用这个解析器的吧