0

RSS フィードを解析し、必要に応じてフォーマットされた情報を含む Web ページを作成するのに非常にうまく機能する PHP スクリプトがあります。簡略化された PHP スクリプトは次のようになります。

<?php
    $xml = simplexml_load_file('http://myrrs.com');

    echo '<ul>';

    foreach($xml->xpath('//item') as $item) { 
        printf('<li><a href="%s"><img src="%s" title="%s/></a></li>', 

        $item->myurlpath, $item->myimagepath, str_replace('.', ' ',$item->title) ); 
    }
    echo '</ul>';
?>

しかし今、Smarty テンプレート内で同じスクリプト機能を生成しようとしています。Smarty は {php}{/php} の使用を推奨していません。また、試してみましたが、うまくいきませんでした。

XMLをロードできることはわかっています(私のPHPスクリプトの最初の行は次のようになります:

    {$xml=simplexml_load_file('http://myrss.com')} 

しかし、foreach(Xpath) の Smarty 構文と、抽出された値を渡す printf 部分の機能を複製する方法がわかりません。

Smarty でサンプルの foreach ステートメントを見たことがありますが、Xpath 機能を備えたものはありません。

ありがとうございました。

4

1 に答える 1

0

私は正しい方法を理解することができました:

{$rss=simplexml_load_file('http://myrss.com')}
{foreach $rss->channel->item as $a}

  <li><a href="{$a->myurlpath}"><img src="{$a->myimagepath}" title="{$a->title}"/></a></li>

{/foreach}

これが誰かに役立つことを願っています....

ありがとうございました。

于 2013-01-23T01:11:26.980 に答える