我有一個基本上是搜索應用程序的程序,它以VBScript和Perl的形式存在(我試圖用GUI做一個可執行文件)。XSLT樣式表適用於vbs腳本,但不適用於Perl
當前搜索應用程序輸出一個HTML文件,並且如果HTML中的一段文本長於十二行,那麼它將隱藏任何內容幷包含可點擊的More...
標記。
這是在XSLT中完成的,並且適用於VBScript。
我從字面上將樣式表複製並粘貼到我正在使用的Perl程序中,它除了處理More...
標籤之外,其他所有事情都是正確的。
是否有任何理由,它會使用VBScript而不是Perl?
我的Perl腳本使用XML::LibXSLT
,這裏是應該被創建More...
標籤
<xsl:template name="more">
<xsl:param name="text"/>
<xsl:param name="row-id"/>
<xsl:param name="cycle" select="1"/>
<xsl:choose>
<xsl:when test="($cycle > 12) and contains($text,' ')">
<span class="show" onclick="showID('SHOW{$row-id}');style.display = 'none';">More...</span>
<span class="hidden" id="SHOW{$row-id}">
<xsl:call-template name="highlight">
<xsl:with-param name="text" select="$text"/>
</xsl:call-template>
</span>
</xsl:when>
<xsl:when test="contains($text,' ')">
<xsl:call-template name="highlight">
<xsl:with-param name="text" select="substring-before($text,' ')"/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="more">
<xsl:with-param name="text" select="substring-after($text,' ')"/>
<xsl:with-param name="row-id" select="$row-id"/>
<xsl:with-param name="cycle" select="$cycle + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="highlight">
<xsl:with-param name="text" select="$text"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
你用什麼來處理XSLT?這可能是因爲你依賴未指定的行爲或者一個實現有bug。或者你可能已經忘記了一個選項,誰知道。爲了讓您的問題能夠回答,您必須添加XSLT處理器信息,並且理想情況下允許我們重現問題的一些代碼。 – amon
@amon我添加了代碼和我正在使用的perl模塊。 – OstrichProjects