1
對於下面的XML,XSLT有條件地更改文本字體
<question>
<bp>Suppose a file a.xml has content:</bp>
<bp><![CDATA[<a> 1 <b> 2 <b> 3 <a> 4 </a> </b> </b> </a>]]></bp>
<bp>What is the value of the following XPath expression:</bp>
<bp>for $x in doc("a.xml")//a/b return $x/b/a/text()</bp>
</question>
在XSLT文件,我要改變文本的字體,如果XML標籤之間的文本包含
<![CDATA[ ]]>
我嘗試使用以下代碼,
<xsl:for-each select="mcq:bp">
<xsl:if test="contains(. , '<![CDATA[ ]]>')">
<xsl:attribute name='font-family'>courier</xsl:attribute>
<xsl:value-of select="."/>
</xsl:if>
<xsl:value-of select="."/>
<br/>
</xsl:for-each>
但是,xslt在瀏覽器中不顯示任何內容。
CDATA部分中沒有XML標籤。 CDATA的目的是說「這裏的東西可能看起來像XML標籤,但它們不是。」如果您希望將它們解析爲XML,請不要將它們包裝在CDATA中。 – 2012-03-04 10:28:47