我在CDATA标签中有一些XML格式的文本。 XSLT将此数据放在列属性名称和列表中。属性值。属性值具有CDATA标记,但是当它添加到表时,它不显示格式化文本。相反,它显示“< p>< strong>< span style =”颜色:#FF8C00;“>此需求的测试数据; / span>< / strong>< / p>” 它应该显示如下
有人可以帮我解决问题吗?
答案 0 :(得分:1)
CDATA标记告诉XML解析器不要解析内容。因此,如果您想要解析它,您需要从CDATA部分提取它并将其提交给第二次解析运行。使用现代XSLT处理器,您可以使用诸如parse-xml()之类的函数调用来执行此操作,但对于较旧的处理器,您将需要调用扩展函数。
如果您只是想简单地将CDATA部分的内容复制到序列化输出,而不进行修改并且没有转义标记,那么您可以使用<xsl:value-of select="..." disable-output-escaping="yes"/>
。但是,这仅在将转换输出发送到序列化程序时才有效:例如,某些浏览器不是这种情况。