xslt过滤少于100次Google匹配的项目

时间:2014-01-13 13:36:34

标签: xml web-services xslt

在验证XML数据库时,我想到了以下想法:我应该使用Google过滤所有单词。那些点击次数低于100的单词会有点怀疑。

但是如何使用XSLT实现这一目标?我成功地隔离了每个单词。但是,我怎样才能获得每个单词的Google点击次数?我完全不知道,https://developers.google.com/根本没有帮助。

(我们正在谈论大约4000个单词。我认为Google服务器不会因4000个请求而崩溃。)

1 个答案:

答案 0 :(得分:0)

理论上可以基于这种想法建立转换(而非验证) ,如果你能找到一种方法来获取谷歌的点击次数XML格式 。它只需要有趣地使用document() function.

让我们说我有一个XML文档,并希望只输出具有超过1000次谷歌点击的某些元素。我们假设我们希望根据文档中的<term>元素进行限制,并从identity transform开始。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- Interesting code starts here: -->

  <xsl:template match="term">
    <!-- you need to find out what this is -->
    <xsl:variable name="google" select="'www.google.com/funkyXMLAPI?search='"/>

    <xsl:variable name="term" select="."/>
    <xsl:variable name="uri" select="concat($goog,$term)"/>

    <!-- Again, you'll need to findout what the path to the number of hits is -->
    <xsl:variable name="hits" select="document($uri)//path/to/numberOfHits"/>

    <!-- If there are more than 1000 hits, then copy it across -->
    <xsl:if test="$hits &gt; 1000">
      <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
      <xsl:copy>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

同样,这一切都取决于是否存在以可预测的XML格式返回信息的Google搜索API。