2009-11-24 31 views
1

我使用XSLT和写这个素文字首发:使用XSLT的XHTML链接提取

<?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 

我需要获得链接的名单,但我得到输出整个页面。怎么了?我怎样才能得到它的作品?

回答

3

有一些默认模板,这是看不见的。解决这个问题的最简单方法就是明确限制你正在匹配的span元素,如下所示。否则,您可以覆盖默认模板。

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

有一个默认模板,基本上匹配所有的东西,如果你愿意的话。您的第四条最后一行将调用该模板。

这是问题的一部分。剩下的可能是通过直接在顶层模板中匹配你正在寻找的东西来照顾。