问题描述
我正在使用来自 XML 文档的 saxon 进行 xstl 转换.该文档不是标准有效的 XML,我想保留所有在其中找到的 <![CDATA[<
元素.
I'm doing a xstl transformation with saxon from an XML document.The doc is not standard-valid XML, and I want to preserve all <![CDATA[<
elements that are found in there.
但是使用 .xsl 文件进行转换
However using the .xsl file for transformation with
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 条目.我怎样才能防止这种情况?
results in stripping out these CDATA entries. How can I prevent this?
推荐答案
您不能,因为 xslt 使用的数据模型中是否不提供源自 cdata 部分的文本的区别.但是,您可以在样式表中定义将某些结果元素包装在 cdata 中.这是使用 的
元素.cdata-section-elements
属性完成的样式表中的 xsl:output
You can't, as the distinction whether a text originated from a cdata section is not available in the datamodel used by xslt. You can however define in your stylesheet that certain result elements are to be wrapped inside cdata. This is done using the cdata-section-elements
attribute of the xsl:output
element in your stylesheet.
这篇关于保留 CDATA 进行 xstl 转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!