我有一个PHP页面用SimpleXml解析XML文件,然后将该对象传递给Smarty模板。我的问题是XML文件的标签名称中有连字符,例如: video-player
。在PHP中,这没问题,我只使用$xml->{'video-player'}
,一切都很好。另一方面,当我尝试使用该语法时,Smarty会抛出一个拟合。
到目前为止,我提出的唯一解决方案是使用变量来存储名称,例如
{ assign var=name value="video-player" }
{ $xml->$name }
但至少可以说这不是非常优雅。是否有另一种更好的方法来引用Smarty中带连字符的变量名称?
答案 0 :(得分:3)
{php}
echo $xml->{'video-player'};
{/php}
答案 1 :(得分:0)
在Dwoo
我会尝试
{$xml->`video-player`}
也许在Smarty
它也会起作用。
答案 2 :(得分:0)
你只需要把它放在单引号内。
它也适用于比较块:
{if $variable == 'hyphenated-value'} it works! {/if}
而不是
{if $variable == hyphenated-value} do not work! {/if}