2014-07-23 72 views
-1

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

<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.

如果有一种方法可以排除粗体格式标记过,因此显示为“选择你认为正确的选项“它会超级棒!

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

非常感谢 尼尔

+0

在发布问题之前你有一点搜索吗? – macfij

+0

您使用哪种XSLT处理器?您可以使用哪种XSLT处理器? –

+0

对于macfij:我一直在寻找最近几天的解决方案。我发现了类似的问题,但没有解决方案适用于我的特定问题。 – niallok

回答

0

纯XSLT 3.0(需要撒克逊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> 

其解析与parse-xml-fragmentproperty元素的内容,然后简单地输出字符串值(这是一种剥离所有元素的方法,如pspan元素)。

+0

感谢那马丁。尽管如此,请参阅先前的评论,我想尝试编写一个XLS以在浏览器窗口中显示XML内容。这会为此工作吗? – niallok

+0

Saxon 9.5是一款XSLT 2.0和3.0处理器,它不能在浏览器中运行,您可以在浏览器外部运行它,以创建一个HTML结果文档,然后可以在浏览器窗口中加载并显示HTML文件(如果需要或需要)。 –