我正在使用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条目。我该如何防止这种情况?
答案 0 :(得分:0)
您不能,因为xslt使用的数据模型中是否存在源自cdata部分的文本的区别。但是,您可以在样式表中定义某些结果元素将包装在cdata中。这是使用样式表中的cdata-section-elements
attribute of the xsl:output
element完成的。
答案 1 :(得分:0)
考虑使用Andrew Welch的LexEv工具(我认为与KernowForSaxon捆绑在一起),它将CDATA开始和结束标记预处理成不同的东西(可能是处理指令?),这些内容在XSLT数据模型中可见,因此可供应用程序使用。