Image 显示大小一致的新闻项图像的XSLT

Image 显示大小一致的新闻项图像的XSLT,image,xslt,image-resizing,image-size,Image,Xslt,Image Resizing,Image Size,我有一个RSS XML新闻文件,其中包含一个项目列表,其中包含一个指向图像的URL。我还有一个相关的XSLT 问题是图像大小不一致,我想将图像大小限制在一个漂亮的缩略图上,调整大小 我将如何修改XSLT来实现这一点 XML示例: <?xml version="1.0" encoding="UTF-8" ?> <rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0"> <channel>

我有一个RSS XML新闻文件,其中包含一个项目列表,其中包含一个指向图像的URL。我还有一个相关的XSLT

问题是图像大小不一致,我想将图像大小限制在一个漂亮的缩略图上,调整大小

我将如何修改XSLT来实现这一点

XML示例:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">
    <channel>
        <title>Company Name</title>
        <description>Company description</description>
        <link>http://www.mycompanyurl.com</link>

        <item>
            <title>News Item Title</title>
            <link>http://www.whateverurl.com/</link>
            <category>Space</category>
            <pubDate>12 April 1961</pubDate>
            <description>Software to reduce your job search to a half hour per day. all major job sites, job boards, classifieds. unemployment paperwork, CRM, interviews, more</description>
            <image>
                <url>~/App_Data/NewsControl/whatever.png</url>
                <title>Whatever1</title>
                <link>javascript:void(0)</link>
            </image>
            <g:id>1</g:id>
            <g:brand>Whatever2</g:brand>
            <g:condition>whatever3</g:condition>
            <g:price>$whatever4</g:price>
            <g:product_type>Whatever5</g:product_type>
        </item>
    </channel>
</rss>

公司名称
公司名称
http://www.mycompanyurl.com
新闻标题
http://www.whateverurl.com/
空间
1961年4月12日
软件可以将你的求职时间减少到每天半小时。所有主要工作场所、工作公告栏、分类广告。失业文书、客户关系管理、面试等
~/App\u Data/newcontrol/whatever.png
什么
javascript:void(0)
1.
什么
什么
每4美元
什么
以下是相关的XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <items>
      <xsl:for-each select="//item">
        <item Name="{position()}" HeaderText="{title}" Text="{description}" NavigateUrl="{position()}" Date="{pubDate}" ImageUrl="{image/url}"/>
      </xsl:for-each>
    </items>
  </xsl:template>
</xsl:stylesheet>

第一个答案的结果

<items>
    <xsl:for-each select="//item">
       <item Name="{position()}" HeaderText="{title}" Text="{description}" NavigateUrl="{position()}" Date="{pubDate}" ImageUrl="/Tools/thumber.php?img={image/url}"/>
    </xsl:for-each>
</items>

我做了这些更改,在服务器上启用了PHP(从服务器和本地测试),并发现了两个问题: 1.我没有图像,只是一个没有图像的盒子

  • 如果我试图编辑ImageUrl并在“&W=xxx&H=xxx”上加上图钉,VisualStudio验证器会抱怨并在&上抛出错误
  • 更新2 以下是XSLT中的最新一行: http://myserver.com/Tools/thumber.php?img=“,图像/url)}”/>

    XML中相应的图像部分

    <image>
        <url>/Products/Jobfish/Images/Boxshots/Jobfish_DVDCaseCD_ShadowOut.jpg</url>
        <title>Jobfish</title>
        <link>javascript:void(0)</link>
    
    
    /产品/Jobfish/Images/Boxshots/Jobfish_DVDCaseCD_ShadowOut.jpg
    乔比什
    javascript:void(0)
    

    XSLT没有用于调整大小或缩略图的内置功能。您必须使用外部处理器来实现这一点,例如,使用PHP缩略图生成器

    然后将原始图像路径替换为指向缩略图生成器的URL,源为原始图像

    假设ImageUrl=mediaserver.xyz/ourlogo.jpg 新的ImageUrl将成为myserver.com/thumbnailgenerator.php?src=


    请让舒尔选择缓存缩略图库(例如),因为如果你跳过这一点,这将是一个严重的资源消耗。在重新提供这些缩略图时也要考虑版权问题。

    谢谢你的建议。我下载了Thumber,并在我的帖子更新中添加了代码,但是我收到了VS抱怨&符号,更重要的是没有缩略图,只是没有ima更新:抱歉,我没有正确阅读您的问题:图像不在您的服务器上,建议的phpthumbmaker不是获取外部内容的正确php库。因此,请不要使用该库获取外部图像。另请参阅“如何获取外部站点的调整大小的图像?”?“StackOverflow问题目前所有图像都是本地的。在XML文件中,我使用了“/images/xxxxx.png”结构。这个
    /Tools/thumber.php?img={image/url}
    是错误的,您不能仅作为属性的一部分作为表达式计算-它应该是
    {concat('/Tools/thumber.php?img=',image/url)