Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 如何在另一个XML中使用CDATA包装的XML进行XSL转换?_Xslt_Xslt 1.0_Cdata - Fatal编程技术网

Xslt 如何在另一个XML中使用CDATA包装的XML进行XSL转换?

Xslt 如何在另一个XML中使用CDATA包装的XML进行XSL转换?,xslt,xslt-1.0,cdata,Xslt,Xslt 1.0,Cdata,XML文档包含另一个XML元素,它被包装在CDATA中 如何将包装好的XML用于XSL和XSL-FO转换(第1版)?对于标准XSLT 1.0或2.0,在单个转换中是不可能的 可以使用Saxon 9专业版或企业版完成。这些产品具有扩展功能。或者使用该函数,Saxon PE/EE的最新版本也支持该函数 正如@grtjn所指出的,可以通过两个过程来完成。样式表1将CDATA包装的文本转换为可解析的XML(使用)。然后,样式表2处理样式表1生成的序列化结果。如果您愿意执行多个转换步骤,则是可能的。使用

XML文档包含另一个XML元素,它被包装在CDATA中


如何将包装好的XML用于XSL和XSL-FO转换(第1版)?

对于标准XSLT 1.0或2.0,在单个转换中是不可能的

可以使用Saxon 9专业版或企业版完成。这些产品具有扩展功能。或者使用该函数,Saxon PE/EE的最新版本也支持该函数



正如@grtjn所指出的,可以通过两个过程来完成。样式表1将CDATA包装的文本转换为可解析的XML(使用
)。然后,样式表2处理样式表1生成的序列化结果。

如果您愿意执行多个转换步骤,则是可能的。使用“禁用输出转义”输出相关部分,以将转义的XML转换为有效的XML。在后续步骤中对其进行处理


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

应该可以在第二次转换中完成,正如。不是吗?请记住,这两个过程步骤是如何联系在一起的可能会有所不同。我见过两个XSLT步骤在Java中通过SAX事件连接的情况,但结果是取消跳过被延迟到序列化,因此后续XSLT无法访问取消跳过的XML。@grtjn:Yes,必须序列化结果树才能工作
disable output escaping=“Yes”