0

画像への URL を含むアイテムのリストを含む RSS XML ニュース ファイルがあります。関連する 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>

関連する 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 を有効にしました (サーバーとローカルでテスト)。2 つの問題が発生しました。

  1. ImageUrl を編集して "&W=xxx&H=xxx" を追加しようとすると、Visual Studio バリデーターが不平を言い、& でエラーをスローします。

更新 2 XSLT の最新の行は次のとおりです: http://myserver.com/Tools/thumber.php?img=',image/url)}"/>

XML の対応する画像セクション

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

4

1 に答える 1

0

XSLT には、サイズ変更やサムネイル表示のた​​めの組み込み関数がありません。そのためには、外部プロセッサを使用する必要があります。PHP サムネイル ジェネレーターを使用します。

次に、元の画像パスをサムネイル ジェネレーターを指す URL に置き換えます。ソースは元の画像です。

ImageUrl = mediaserver.xyz/ourlogo.jpg と仮定すると、新しい ImageUrl は myserver.com/thumbnailgenerator.php?src= http://mediaserver.xyz/ourlogo.jpgになります。

キャッシング サムネイル ライブラリ (例: https://code.google.com/p/phpthumbmaker/wiki/ThumberWiki )を選択するようにしてください。これをスキップするとリソースを大量に消費します。これらのサムネイルを再提供するときは、著作権の問題も考慮してください。

于 2013-02-28T06:53:49.847 に答える