2010-03-23 83 views
2

一些特定的價值如何檢查標籤存在和值是「開」做XSL東西驗證一個元素是否存在,並在XSL

請指正。,

<xsl:if test="$status and $status='On'"> 

//do something 

</xsl:if> 

才能跳過檢查標籤是否存在並直接檢查值。

<xsl:if test="$status='On'"> 

    //do something 

    </xsl:if> 

是一個正確的做法,

+0

好問題(+1)。查看我的答案以獲得完整的解釋。 :) – 2010-03-23 13:37:56

回答

3

<xsl:if test="$status and $status='On'">

上面是多餘的,因爲如果$status='On'然後$status布爾值是真實的。

因此,包含在上述xslt指令的@test屬性中的表達式相當於:$status='On',它更短。

這完全回答了問題

在我看來,你想測試是否$status定義,然後測試其值。這是不正確的 - 如果對未定義的xsl:變量進行引用,則按照W3 XSLT規範引發錯誤。

+1

@flash中得到任何空的模糊或者什麼:你的問題「檢查標籤是否存在,值是'On'」也可能意味着'$ status'是你想檢查的元素的*名稱,而不是實際的字符串值。如果是這種情況,請使用''。 – Tomalak 2010-03-24 20:13:43

2

你應該使用XPath表達式

<xsl:if test="/path/node = 'On'"> 

</xsl:if> 

或$狀態的XSL PARAM?

+0

是$狀態是一個xml PARAM – flash 2010-03-23 09:45:44

+0

隨後的 //做點什麼 是正確 – Ivo 2010-03-23 10:55:35

+0

是沒有必要檢查是否 '狀態'存在使用'$狀態' – flash 2010-03-23 11:42:39

相關問題