2011-05-14 61 views
1

我正在使用XSLT,並且正在輸出HTML5文檔。在我的文檔中,我需要一個自定義屬性。在XSLT中爲HTML5生成布爾自定義屬性

我要實現這一點:

<div class="row" data-template>...</div> 

到目前爲止,我已經成功地做到使用CDATA它,就像這樣:

<xsl:text disable-output-escaping="yes"><![CDATA[<div class="row" data-template></div>]]></xsl:text> 

雖然這將產生有效的標記,這裏的問題,當你出現需要與實際節點一起工作,例如動態設置ID。 One of my cohorts提出了以下的輸出:

<div class="row" data-template=""></div> 

使用:

<xsl:attribute name="data-template" /> 

再次,這是有效的,但看起來有點醜。是否有另一種方法可以讓我爲HTML5輸出有效的自定義數據屬性?

+0

'XSL:attribute'比'XSL難看得多:text'和它的向元素添加屬性的正確方法之一。你在找什麼?確實有其他的方法,但是如果沒有看到你的信息來源和你想要的結果,很難建議。 – 2011-05-14 10:50:18

+1

我暗示的是,我想有'數據模板'屬性,而沒有空的等號,就像我現在看到的'data-template =「」' – Demwunz 2011-05-14 11:07:59

+0

。我(希望)回答。 – 2011-05-14 11:53:38

回答

1

您可能想要接受這樣的事實:<xsl:attribute>會生成一個名稱 - 值對對象屬性,但會將其作爲布爾值進行語義理解。

<xsl:attribute name="data-template">true</xsl:attribute> 

應該產生

<div class="row" data-template="true"></div> 

看起來有點不太難看。

1

難道你已經嘗試過:

<xsl:attribute name="data-template">data-template</xsl:attribute> 

不過,我覺得是不可能擺脫鍵 - 值對