我有一个本质上是搜索应用程序的程序,它以 VBScript 和 Perl 形式存在(我正在尝试使用 GUI 制作可执行文件)。
当前,搜索应用程序输出一个 HTML 文件,如果 HTML 中的一段文本长度超过 12 行,那么它会隐藏之后的任何内容并包含一个可点击的More...
标签。
这是在 XSLT 中完成的,并且适用于 VBScript。
我从字面上将样式表复制并粘贴到我正在使用的 Perl 程序中,除了More...
标记之外,它做的一切都是正确的。
有什么理由可以使用 VBScript 而不是 Perl?
我XML::LibXSLT
在 Perl 脚本中使用,这里是应该创建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>