XML转换为Smarty .tpl文件?

时间:2011-10-22 22:35:54

标签: arrays xml foreach task-parallel-library smarty

我在扩展名为.tpl(Smarty模板)的文件中有以下代码

{foreach from=$randomSites value=site}
    <a href="{$site|objurl:'siteDetails'}" title="{$site.siteTitle}" >
    <img alt="{$site.siteTitle}" src="{$site.imageSrc}" class="random_image" />
    </a> 
{/foreach}

它会生成一个包含缩略图的网站列表..

是否可以将此代码转换为带有simplexml类或类似内容的XML文件?

我必须先用PHP代码转换?

1 个答案:

答案 0 :(得分:1)

你有两个选择。首先,您可以使用Smarty模板来创建XML,如下所示:

<sites>
{foreach from=$randomSites value=site}
  <site>
    <url>{$site|objurl:'siteDetails'|escape:'url'}</url>
    <title>{$site.siteTitle|escape}</title>
    <image-url>{$site.imageSrc|escape:'url'}</image-url>
  </site>
{/foreach}
</sites>

其次,正如您所建议的那样,您可以在内存中的SimpleXML或DOM等库中构建XML树,然后将其序列化为磁盘。好处是库可以防止任何XML标记错误;缺点是非XML专家很难根据库调用来描绘输出的样子。