2011-05-16 98 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