如何在另一个用于XSL转换的XML中使用包装在CDATA中的XML



XML文档包含另一个XML元素,该元素封装在CDATA中。

如何将封装的XML用于XSL和XSL-FO转换(版本1)?

如果您愿意采取多个转换步骤,那么这是可能的。使用禁用输出转义输出相关部分,以将转义的XML转换为有效的XML。在后续步骤中进行处理。

它确实要求转义的XML格式正确。一些解析器要求首先将中间结果序列化(到磁盘或其他地方),以确保转义的XML在进入后续转换之前正确地取消了转义。

这在标准XSLT1.0或2.0的单个转换中是不可能的。

它可以使用Saxon 9专业版或企业版来完成。这些产品具有saxon:parse()扩展功能。或者使用XPath 3.0 parse-xml()函数,Saxon PE/EE的最新版本也支持该函数。


正如@grtjn所指出的,可以通过两个过程来完成。样式表1将CDATA包装的文本转换为可解析的XML(使用<xsl:value-of select="whatever" disable-output-escaping="yes"/>)。样式表2然后处理样式表1生成的序列化结果。

相关内容

  • 没有找到相关文章

最新更新