日安,请指教。我使用的是FOP0.95(1.0版)和EXSL扩展。我有这个XML:
<List>
<Item>
<Details><![CDATA[<details><weight>0.5kg</weight><colour>Red</colour></details>]]></Details>
</Item>
</List>有没有办法使用exsl:node-set()函数解析CDATA中的字符串?下面的代码输出"0.5kgRed“而不是"0.5kg Red”,这意味着它不会被解析,而是作为一个字符串处理:
<xsl:variable name="txtDetails" select="/List/Item/Details"/>
<xsl:variable name="details" select="exsl:node-set($txtDetails)"/>
<xsl:value-of select="$details"/>发布于 2012-05-31 01:16:32
答案是否定的。包装在CDATA节中的内容不会被解析为XML标记。这就是CDATA部分的全部意义所在。使用exsl:node-set()无济于事。
这个问题与XSL-FO无关。FOP是XSL-FO处理器,而不是XML解析器。当然,它使用了XML解析器,但这并不影响这个答案。FOP也不是XSLT处理器;尽管它可以进行XSLT转换,但实际的XSLT处理器是在“幕后”完成实际工作的。
https://stackoverflow.com/questions/10813749
复制相似问题