如何从GSA的结果中删除摘要字段中的html标记?

时间:2015-01-28 10:24:53

标签: google-search-appliance

使用JAPI-GSA我在每个摘要中收到来自结果GSA的html标签。 如 “摘要”:“...< / b> Ce tarif n'est pasued pour les enfants voyageant seuls(UM).Tarif le
plus bas< / b&gt ;,Autres tarifs,Vol aller:Paris - 吉隆坡....< / b>“

如何从摘要中删除这些标记。 提示:我需要修改XSLT

1 个答案:

答案 0 :(得分:0)

GSA抛出的原始搜索结果是XML格式。在此XML输出中,片段包含一定数量字符后的标记。您无法编辑XML输出,但就像您暗示的那样,您可以修改XSLT。

在XSLT文件中,添加以下模板:

<!-- **********************************************************************
REMOVE BR LINE-BREAKS FROM SNIPPETS
********************************************************************** -->

  <xsl:template name="remove_br">
    <xsl:param name="orig_string"/>

  <xsl:variable name="removed_br">
    <xsl:call-template name="replace_string">
      <xsl:with-param name="find">&lt;br&gt;</xsl:with-param>
      <xsl:with-param name="replace"> </xsl:with-param>
      <xsl:with-param name="string" select="$orig_string"/>
    </xsl:call-template>
  </xsl:variable>

  <xsl:value-of disable-output-escaping='yes' select="$removed_br"/>
</xsl:template>

此模板查找标记并用空格替换它们。添加此模板后,找到创建代码段的部分,并将其替换为以下代码段:

<!-- *** Snippet Box *** -->
<table cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td class="s">

    <xsl:if test="$show_res_snippet != '0' and string-length(S) and
                    $only_apps != '1'">
        <xsl:variable name="snippet">
          <xsl:call-template name="remove_br">
            <xsl:with-param name="orig_string" select="S"/>
          </xsl:call-template>
        </xsl:variable>
        <xsl:call-template name="reformat_keyword">
          <xsl:with-param name="orig_string" select="$snippet"/>
        </xsl:call-template>
      </xsl:if>

此代码调用您之前添加的模板,并生成一个代码段,其中标记将替换为空格。