xslt
  • xslt-2.0
  • 2012-02-27 69 views 3 likes 
    3

    您好我有一個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);'> 
    
    +0

    您需要更詳細地解釋您想達到的目標;你是否想在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

    +0

    @Varun,接受答案..如果它確實幫助了你..否則人們會認爲,這些答案沒有用,並試圖想出一個新的解決方案,這是浪費時間..:| – 2012-02-27 12:28:23

    回答

    3

    簡單:

    <span onmouseout='c();' onmouseover='s({$numFound});'> 
    

    {}是這裏的關鍵 - 在屬性中使用時,他們使用XSLT作爲一個短手來評價內容在xslt規則下。這相當於:

    <span onmouseout='c();'> 
        <xsl:attribute name="onmouseover">s(<xsl:value-of select="$numFound"/>);</xsl:attribute> 
    </span> 
    
    +0

    它的工作。謝謝馬克。 – Varun 2012-02-27 11:38:13

    +0

    @Varun:在這種情況下,接受答案是一種好的做法。這是通過點擊最佳答案旁邊的複選標記完成的。 – 2012-02-28 01:37:02

    2

    我猜你產生一些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> 
    
    +0

    有一個更簡單的方法來做到這一點,順便說一句;看到我的回答 – 2012-02-27 11:16:12

    相關問題