2014-07-23 94 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文件(如果需要或需要)。 –