1

simplexml を介してアクセスしている次の xml があります。

<sequences>
    <sequence>
        <ImageUrl id="">
            http://www.image.com/image.jpg
        </ImageUrl>
        <photographer>name</photographer>
    </sequence>
    <sequence>
        <ImageUrl id="">
            http://www.image.com/image1.jpg
        </ImageUrl>
        <photographer>name 1</photographer>
    </sequence>
</sequences>

このデータを smarty に渡してテンプレートに出力する必要があります。最初のシーケンス画像と写真家の名前を出力し、次に 2 番目を出力できるようにする必要があります。これどうやってするの?配列を smarty に渡して、テンプレートでループできることがわかりますが、基本的には、各シーケンス ノードに対して 1 つの配列である多次元配列を渡す必要があります。

4

2 に答える 2

1

私は全体の simplexml obj を smarty に割り当てて、テンプレートのようにループしました:

{foreach from=$contents key=key item=item}
    {foreach from=$item key=k item=i}
        {if $k eq 'ImageUrl'}
            <img src="{$i}" />
        {/if}
        {if $k eq 'photographer'}
            <img src="{$i}" />
        {/if}
于 2013-03-08T13:54:21.490 に答える
0

XML を配列に変換してから、次のようにします。

PHPで

<?php
$arr = array("first"=>1000, "second"=>1001, "third"=>1002);
$smarty->assign('myArray', $arr);
?>

smarty テンプレートでは:

<ul>
{foreach from=$myArray item=myArray name=myArray}
    <li>{$myArray.first}</li>
    <li>{$myArray.second}</li>
    <li>{$myArray.third}</li>
{/foreach}
</ul>
于 2013-03-08T11:53:33.430 に答える