2012-01-30 48 views
2

(我剛剛開始使用的XForms)的XForms - 有關與OR條件

我有10整數輸入字段和1個文本字段的形式 我試圖設置相關標準的文本字段。 我想要做的是顯示文本字段當且僅當一個或多個字段的值高於18.

我相信我需要一個或條件在相關領域,如: 相關=「(/ data/weight_group/weight1> 18 ||/data/weight_group/weight2> 18)」

顯然這並不完全正確,但我在Google/Stack/etc中找不到任何東西,導致我相信我在吠叫錯誤的樹。

有什麼建議嗎? 感謝

回答

1

應該是這樣的:

relevant="/data/weight_group/weight1 < 18 or /data/weight_group/weight2 > 18" 

幾點說明:

  • 相關屬性的值是XPath表達式。因此,當某些事情不起作用時,您需要查閱XPath文檔。
  • XPath中的邏輯運算符是「和」和「或」,而不是「& &」和「||」。
  • 您需要轉義<和>在XPath表達式中爲& lt;並且它們不會搞亂XML結構。 (有人可以證實這一點?)
+0

感嘆。我嘗試了'或',逃避,還有其他一些事情,但顯然沒有以正確的組合。但是,是的,這解決了問題,謝謝。爲了回答你的逃跑問題,至少你需要逃跑,我相信。從現在開始,我只想逃避一切,以減少問題發生的機率。再次感謝 – cdmccann 2012-01-30 22:35:15

+0

如果您使用的是XPath 2,您也可以使用'lt'和'gt'運算符,這些運算符不需要轉義(這就是爲什麼要引入這些運算符)。 – ebruchez 2012-01-31 17:26:33

0

首先相關屬性是一個模型屬性,這意味着它不能在控件上工作。其次它通過一個綁定元素進行更新。

<model xmlns="http://www.w3.org/2002/xforms"> 
    <instance> 
    <data xmlns=""> 
     <weight_group> 
      <weight1/><weight2/> 
     </weight_group> 
     <valid_weight> 
    </data> 
    </instance> 
    <bind nodeset="/data/valid_weight" relevant="../weight_group/weight1 &lt; 18 or ../weight_group/weight2 &gt; 18"> 
</model> 

要將屬性valid_weight由這個條件控制,勢必有效的體重控制任何時候將不相關的消失。