2011-05-16 58 views
0

下面是想我今天要做一个简单的例子:如何使用XSL:如果使用类?

IF CLASS=.TEST Show THIS content 

我不是以清除所有的变量,我可以把内:< xsl:if test="{HERE}" >

*注:我可以操纵通过使用布尔值的内容:< xsl:if test="price>2" >但数学公式不会真正帮助我为我想要完成的。

+0

你是什么意思有课吗?什么CLASS是给你的?您能否提供您想要执行测试的XML示例? – 2011-05-16 17:38:27

+0

我不确定您是否可以在test =“”...即:' nthChild 2011-05-16 18:24:56

+0

_中定位某个班级或ID,但是数学方程式不会真的有帮助我为了我想要完成的事情......所以你想完成什么? – 2011-05-16 18:40:08

回答

1

看起来你需要检查我们的w3schools在这里:http://www.w3schools.com/Xsl/el_if.asp

在你的情况下,你可能与

<xsl:choose> 
    <xsl:when test="test1">output1</xsl:when> 
    <xsl:when test="test2">output2</xsl:when> 
    ... 
    <xsl:otherwise>some error or other</xsl:otherwise> 
</xsl:choose> 
+0

谢谢这有助于! – nthChild 2011-05-16 16:55:30

+0

有没有人推荐一句我可以谷歌帮助我更好地了解什么类型的“表达式”,我可以在(test =“”)属性中使用? – nthChild 2011-05-16 20:19:13

+0

尝试使用“XPath规范”或“XPath教程”,具体取决于您是希望获得准确的形式规范还是某人对白痴的指导。 – 2011-05-16 21:57:40

1

更好地在你不需要使用条件XSLT指令,如<xsl:if>许多情况下。

这是更好地使用模式匹配

<xsl:template match="*[@class='someValue']"> 
    <!-- Necessary processing here --> 
</xsl:template> 
+0

只是为了澄清“在许多情况下......”。当输出文档顺序与源文档顺序匹配时,模板匹配将起作用。如果输出文档的顺序不同,则可以使用条件XSLT。 – 2011-05-17 14:48:20

+0

@ bob.faist:语句:“输出文档顺序与源文档顺序匹配时模板匹配”不正确。模板匹配本身不会“起作用”。始终是指令,这些指令可以选择模板来处理特定节点。如果只有指令位于内置模板中,或者代码中的显式没有选择属性,则您的语句为true。使用select属性或一个孩子,处理结果可以以许多不同的方式排序 – 2011-05-17 19:36:43