保留CDATA进行xslt转换?

时间:2012-12-05 15:53:39

标签: java xml saxon

我正在使用XML文档中的saxon进行xstl转换。 该doc不是标准有效的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条目。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

相关问题