我有以下xml,我通过simplexml访问:
<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个数组。
答案 0 :(得分: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}
答案 1 :(得分: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>