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 機能を備えたものはありません。
ありがとうございました。