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