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 并在模板中输出。我需要能够输出第一个序列图像和摄影师姓名,然后是第二个。我怎样才能做到这一点?我可以看到您可以将一个数组传递给 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 回答