【发布时间】:2011-05-16 01:19:54
【问题描述】:
我正在开发一个 Java Web Start 分发应用程序。它使用配置 XML 来定义如何为客户端提供资源。在请求期间会生成一些资源。我正在使用自定义 SAXParser 处理程序处理主配置文件。
在配置文件中,我想添加一个嵌入的 XML 定义部分,其中包含可服务 XML 文档的根节点作为子节点。
例如:
<Resources>
<!-- other resource definitions -->
<EmbeddedXMLResource mapsForRequest="embedded.xml">
<HiThere>
<ThisIsAnEmbeddedXMLDocument/>
</HiThere>
</EmbeddedXMLResource>
<!-- ... -->
</Resources>
我想知道是否有任何方法可以将 <HiThere> 节点读取到 DOM 文档中,或者至少将 <EmbeddedXMLResource> 的内部内容捕获到跳过 SAX 处理的字符串中?
我考虑将嵌入的内容放入 CDATA 部分。这样我可以将嵌入的 XML 作为文本节点读取,但我会在嵌入节点的编辑器中丢失语法高亮显示。
【问题讨论】:
-
为什么要使用 SAX 解析器开始? SAX 对于大型文档的内存效率很高,但对于配置文件来说,它是多余的,并且比其他各种 API 更难使用。
-
无论如何我都必须遍历整个 XML,因为我正在从节点构造不同的类。我认为 SAX 解析器对此更好。
-
你看过vtd-xml吗?它似乎更合适