使用 Xerces 将 DOM 序列化为 FileOutputStream
我正在使用 this 链接使用 DOM 生成 XML 文件。它说“Xerces 解析器与 JDK 1.5 发行版捆绑在一起。因此您无需单独下载解析器。”
然而,当我在 Eclipse Helios 中编写以下行时,即使我的系统中有 Java 1.6,它也会出现编译时错误。
import org.apache.xml.serialize.XMLSerializer;
为什么会这样呢?
I am using this link to generate XML file using DOM. It says that "Xerces parser is bundled with the JDK 1.5 distribution.So you need not download the parser separately."
However, when I write the following line in my Eclipse Helios it gives compile-time error even though I have Java 1.6 in my system.
import org.apache.xml.serialize.XMLSerializer;
Why is it so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Xerces 确实与 JDK 捆绑在一起,但您应该将其与
javax.xml.parsers
下的 JAXP API 一起使用。检查下面程序的输出。另外,要序列化 XML
Document
,您应该使用 DOM Level 3 Load and Save(存在于 JDK 中)或不带样式表的 XSLT 转换(身份转换)。剩下的就看具体的实现了。 Xerces XMLSerializer 已弃用:以下是 DOM 级别 3 的序列化示例:
以下是身份转换的示例:
Xerces is indeed bundled with the JDK but you should use it with the JAXP API under
javax.xml.parsers
. Check the output of the program below.Also, to serialize an XML
Document
, you should use DOM Level 3 Load and Save (present in the JDK) or an XSLT transformation with no stylesheet (identity transformation). The rest is dependent on a specific implementation. The Xerces XMLSerializer is deprecated:Here is an example of serialization with DOM level 3:
Here is an example with an identity transformation:
它将位于 IIRC,
com.sun.org.apache.xml.serialize.XMLSerializer
。然而,这些都是私人课程,并且可能随时发生变化。我建议改用标准公共 API(javax.*
等)。 (使用不带任何 XSLT 的转换 API。)It will be in, IIRC,
com.sun.org.apache.xml.serialize.XMLSerializer
. However, those are private classes and likely to change at any time. I suggest using the standard public APIs (javax.*
and friends) instead. (Use the transform API without any XSLT.)