您好我有一個XSL變量XSL變量使用
<xsl:variable name="QTime" select="response/lst/int[@name='QTime']"/>
現在我需要這個傳遞給JavaScript函數。請幫助我如何做到這一點...
<span onmouseout='c();' onmouseover='s($numFound);'>
例如
<span onmouseout='c();' onmouseover='s(900);'>
xslt
您好我有一個XSL變量XSL變量使用
<xsl:variable name="QTime" select="response/lst/int[@name='QTime']"/>
現在我需要這個傳遞給JavaScript函數。請幫助我如何做到這一點...
<span onmouseout='c();' onmouseover='s($numFound);'>
例如
<span onmouseout='c();' onmouseover='s(900);'>
簡單:
<span onmouseout='c();' onmouseover='s({$numFound});'>
的{
和}
是這裏的關鍵 - 在屬性中使用時,他們使用XSLT作爲一個短手來評價內容在xslt規則下。這相當於:
<span onmouseout='c();'>
<xsl:attribute name="onmouseover">s(<xsl:value-of select="$numFound"/>);</xsl:attribute>
</span>
它的工作。謝謝馬克。 – Varun 2012-02-27 11:38:13
@Varun:在這種情況下,接受答案是一種好的做法。這是通過點擊最佳答案旁邊的複選標記完成的。 – 2012-02-28 01:37:02
我猜你產生一些HTML與XSL轉換。然後,你可以試試這個:
<xsl:element name="span">
<xsl:attribute name="onmouseout">
<xsl:text>c();</xsl:text>
</xsl:attribute>
<xsl:attribute name="onmouseover" select="concat('s(', $numFound, ');')" />
</xsl:element>
有一個更簡單的方法來做到這一點,順便說一句;看到我的回答 – 2012-02-27 11:16:12
您需要更詳細地解釋您想達到的目標;你是否想在XSLT中使用Javascript作爲擴展函數,如果是的話,你使用哪種XSLT 2.0處理器?我認爲AltovaXML支持(在商業版http://manual.altova.com/AltovaXML/altovaxmlreporting/index.html?xextmsxsl.htm),撒克遜沒有。在XSLT 2.0中使用'xsl:function'在XSLT中編寫函數時,是否需要這樣做是值得懷疑的。或者你想在XSLT轉換的HTML結果文檔中使用Javascript?你在服務器上還是客戶端(SaxonCE)上使用XSLT 2.0? – 2012-02-27 10:46:18
@Varun,接受答案..如果它確實幫助了你..否則人們會認爲,這些答案沒有用,並試圖想出一個新的解決方案,這是浪費時間..:| – 2012-02-27 12:28:23