我有一個:XSLT PARAM條件檢查
<xsl:param name="SomeFlag" />
在我的XSLT模板,我想要做的SomeFlag條件檢查。目前我這樣做:
<xsl:if test="$SomeFlag = true"> SomeFlag is true! </xsl:if>
這是我們如何評價國旗?
我設置帕拉姆在C#爲:
xslarg.AddParam("SomeFlag", String.Empty, true);
任何想法?
我有一個:XSLT PARAM條件檢查
<xsl:param name="SomeFlag" />
在我的XSLT模板,我想要做的SomeFlag條件檢查。目前我這樣做:
<xsl:if test="$SomeFlag = true"> SomeFlag is true! </xsl:if>
這是我們如何評價國旗?
我設置帕拉姆在C#爲:
xslarg.AddParam("SomeFlag", String.Empty, true);
任何想法?
<xsl:if test="$SomeFlag = true">
此測試,如果$SomeFlag
等於名爲「真」的元素,這是當前節點的第一個孩子的字符串值。
你想要的是:
<xsl:if test="$SomeFlag = true()">
我同意Dimitre,但有一個加法:
你的情況,你可以使用:
<xsl:if test="$SomeFlag"> SomeFlag is true! </xsl:if>
但我通常當標誌應該在XSLT中進行評估時,使用1和0作爲布爾標誌,特別是當我從屬性或元素內容獲取值時。
這讓我通過轉換成數字(然後隱式布爾值),而不是比較字符串字面試驗條件:
<xsl:if test="number($SomeFlag)"> SomeFlag is true! </xsl:if>
我從來沒有建議比較一個串文字!請閱讀我的答案並理解它。另外,請注意,OP會設置要從C#測試的值並使用*布爾值*值!所以,你的加入(雖然通常很有用),並不回答這個問題。 – 2010-05-06 03:36:14
@Dimitre Novatchev:我明白你的答案,我的想法是使用0和1而不是布爾值。因此,如果OP將該值序列化到輸入樹而不是作爲參數傳遞,則該方法將保持不變。 – newtover 2010-05-06 05:55:05
很好的問題(+1)。 – 2010-05-05 20:24:32