无法通过XSLT样式表中的模板显示RSS / XML中的图像

时间:2014-01-14 04:47:34

标签: xml xslt rss

我无法让图片显示在样式表中设置的xml文件中。

以下是XML文件的内容

      <image>
        <title>SciTimes.com</title>
        <link>home.htm</link>
        <url>scitimes.jpg</url>
        <width>620</width>
        <height>96</height>
        <description>SciTimes delivers up-to-the-minute news and information on the latest stories from the world of science and technology.
        </description>
      </image>

然后,我遇到问题的地方是XSL文件。我在上面的XML文件中显示图像元素的图像时遇到问题。

这是我所喜欢的部分。我试图显示XML文件中引用的scitimes.jpg图像

在这里,我为图像

创建模板
        <xsl:template match="image" >
            <a href="{link}">
                <img src="{url}" alt="{title}" width="{width}" height="{height}" longdesc="{descriptions}"/>
            </a>
        </xsl:template> 

然后在根模板中我应用它

                <div id="logo">
                  <xsl:apply-templates select="channel/image"/>
                </div>

但它没有显示

1 个答案:

答案 0 :(得分:0)

看起来断开连接是上下文,而在XSLT上下文中(几乎)是一切。

例如,第一个模板与/匹配,第一个xsl:value-of正在选择channel/title。这不会匹配任何内容,因为当前上下文为/

尝试将第一个模板的匹配更改为/rss/*。这应该填写一些的细节。但是,看起来您期望在没有上下文的情况下进行更改。这似乎从第divid="links"开始(例如,当您尝试获取dc:subject的值时)。上下文仍为/

我建议使用更多的&#34; push&#34;通过使用xsl:apply-templates更多的方法。使用一个巨大的模板和&#34;拉动&#34; xsl:value-of的数据很快就会变得无法管理。