使用XSL从XML中提取CDATA

时间:2014-07-23 17:46:50

标签: xml xslt

我不是程序员,但需要一些帮助来找到一种使用XSL在CDATA中显示XML内容的方法。例如,以下行:

<property id="instruction1" media="screen"><![CDATA[<p>Select the <span class="bold">option</span> you think is correct.</p>]]></property>

我只需要在<p></p>标签之间显示文字,即Select the <span class="bold">option</span> you think is correct.

如果有办法排除粗体格式标签,那么它会显示为&#34; 选择您认为正确的选项。&#34;太棒了!

如果需要,我可以发布更多/所有XML代码。

非常感谢 尼尔

1 个答案:

答案 0 :(得分:0)

使用纯XSLT 3.0(需要商业版的Saxon 9.5),您只需执行

即可
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="property[@media = 'screen']">
  <xsl:value-of select="parse-xml-fragment(.)"/>
</xsl:template>

</xsl:stylesheet>

使用property解析parse-xml-fragment元素的内容,然后只输出字符串值(这是剥离所有元素的方式,如p和{{1} } element)。