使用XSLT作为xhtml链接提取器

时间:2009-11-24 21:33:51

标签: html xslt hyperlink

我开始使用XSLT并编写此scipt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8" />
<xsl:template match="span[@class='thumb']" >
    Link: <xsl:value-of select="$base" /><xsl:value-of select="a/@href" />
</xsl:template>

<xsl:template match="/">
    Base href: <xsl:value-of select="$base" />
    <xsl:apply-templates/>
</xsl:template>

</xsl:stylesheet>

使用此命令:

xsltproc --html --param base "'http://example.com'" lista.xslt test.html

我需要获取链接列表,但我得到整页输出。怎么了?我怎样才能使它有效?

2 个答案:

答案 0 :(得分:3)

这里有一些默认的模板。解决它的真正简单方法是明确限制您匹配的span元素,如下所示。否则,您可以覆盖默认模板。

<xsl:template match="/">
  Base href: <xsl:value-of select="$base" />
  <xsl:apply-templates select="//span[@class='thumb']" />
</xsl:template>

答案 1 :(得分:1)

如果你允许的话,有一个默认模板基本匹配所有内容。您的第4行称为该模板。

这是问题的一部分。其余的可能是通过直接在顶级模板中匹配您正在寻找的东西来处理。