0

我正在从 XML 文档中使用撒克逊语进行 xstl 转换。该文档不是标准有效的 XML,我想保留<![CDATA[<在那里找到的所有元素。

但是使用 .xsl 文件进行转换

Transformer trans = TransformerFactory.newInstance().newTransformer(new StreamSource(new File("foo.xsl"));
trans.transform(new StreamSource(new File("foo.xml"), new StreamResult(new File("output.xml")));

导致剥离这些 CDATA 条目。我怎样才能防止这种情况?

4

2 回答 2

0

您不能,因为在 xslt 使用的数据模型中不提供来自 cdata 部分的文本的区别。但是,您可以在样式表中定义某些结果元素将被包装在 cdata 中。这是使用样式表中元素的cdata-section-elements属性来完成的。xsl:output

于 2012-12-05T16:15:19.137 回答
0

考虑使用 Andrew Welch 的 LexEv 工具(我相信与 KernowForSaxon 捆绑在一起),它将 CDATA 开始和结束标记预处理为不同的东西(可能是处理指令?),这些在 XSLT 数据模型中可见,因此可用于应用程序。

于 2012-12-05T17:21:00.710 回答