1

我需要显示有关 xml RSS 提要的 xslt 信息。xml源是:

<description><![CDATA[<p>
<img style="margin: 10px; 
     float: left;" alt="Nuevo modelo general de negocio" 
     src="http://mysite.es/images/figure1.jpg" width="196" height="147" />
     La compañía apuesta por un marcado giro en el modelo]]>
</description>

我正在使用:

<xsl:value-of select="description" disable-output-escaping="yes"/>

但是渲染效果不好,因为我需要显示一个调整大小的图像,大小,例如 70x70。

我已经尝试过了,但它是错误的:

<xsl:value-of select="replace("description","images/","images/resized/images/")" 
   disable-output-escaping="yes"/>

对我来说完美的解决方案是从标签中提取分离的 src 属性和文本。

问候,玛丽亚

4

1 回答 1

0

如果你的 xml 总是像你的例子那么你应该能够使用这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="xsl">

  <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>

  <xsl:template match="/">
    <div>
      <xsl:apply-templates select="rss/channel"/>
    </div>
  </xsl:template>
  <xsl:template match="rss/channel">
    <ul>
      <xsl:apply-templates select="item"/>
    </ul>
  </xsl:template>
  <xsl:template match="item">
    <xsl:variable name="item_link" select="link"/>
    <xsl:variable name="item_title" select="substring-after(description, '/&gt;')"/>
    <xsl:variable name="item_image" select="substring-before(substring-after(description, 'src=&quot;'), '&quot;')" />
    <li>
      <a href="{$item_link}">
        <img alt="" src="{$item_image}" width="70" height="70" />
        <xsl:value-of select="$item_title"/>
      </a>
    </li>
  </xsl:template>
</xsl:stylesheet>
于 2013-05-28T11:51:06.673 回答