2011-01-27 50 views
2

說我有兩個變量(value1和value2),可以是零,我如何使用XmlMarkup創建一個元素,只添加不是零的屬性?使用Builder :: XmlMarkup添加條件屬性

如果我這樣做

xm = Builder::XmlMarkup.new 
xm.item(:attribute1=>value1, :attribute2=>value2) 

和兩個值1和值2是零,我仍然得到

<item attribute1="", attribute2=""/> 

我也曾嘗試創建元素後添加的屬性,但沒有成功,我無法弄清楚這是否得到支持。

如果它不是很明顯,我是一個完整的紅寶石初學者,所以任何輸入將不勝感激。

回答

4

我認爲像這樣可以工作:

xm = Builder::XmlMarkup.new 
attributes = {} 
attributes[:attribute1] = value1 if value1 
attributes[:attribute2] = value2 if value2 
xm.item(attributes) 

如果您有幾個屬性的更多,我可以告訴你一個辦法,以儘量減少用同樣的方法重複了。

+0

非常感謝。說得通。 – 2011-01-27 06:21:39