2009-11-24 65 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

有一個默認模板,基本上匹配所有的東西,如果你願意的話。您的第四條最後一行將調用該模板。

這是問題的一部分。剩下的可能是通過直接在頂層模板中匹配你正在尋找的東西來照顧。