【问题标题】:XML conversion to Smarty .tpl file?XML 转换为 Smarty .tpl 文件?
【发布时间】:2011-10-22 22:35:53
【问题描述】:
我在扩展名为 .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 代码?
【问题讨论】:
标签:
arrays
xml
foreach
task-parallel-library
smarty
【解决方案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 专家很难根据库调用来描绘输出的样子。
【讨论】:
-
mmmm 谢谢,问题是我需要让你的代码适应 flshow.net 的轮播:透明flshow.net" target="_top">flower.jpgflshow.net" target="_top">flower.jpgflshow.net" target="_top">flower.jpg
-
它的工作方式应该完全相同: ... {foreach from=$randomSites item=site} [[whatever]] {/foreach}