1

我有一个 PHP 页面,它使用 SimpleXml 解析 XML 文件,然后将该对象传递给 Smarty 模板。我的问题是 XML 文件的标签名称中有连字符,例如video-player. 在 PHP 中,这没问题,我只是使用$xml->{'video-player'},一切都很好。另一方面,当我尝试使用该语法时,Smarty 会出现问题。

到目前为止,我提出的唯一解决方案是使用变量来存储名称,例如,

{ assign var=name value="video-player" }
{ $xml->$name }

但这至少可以说并不是非常优雅。是否有另一种更好的方法来引用 Smarty 中的连字符变量名?

4

3 回答 3

3
{php}
    echo $xml->{'video-player'};
{/php}
于 2010-04-08T17:15:44.967 回答
0

Dwoo我会尝试

{$xml->`video-player`}

也许Smarty它也会起作用。

于 2010-04-08T17:17:55.163 回答
0

你只需要把它放在单引号内。

它也适用于比较块,如:

{if $variable == 'hyphenated-value'} it works! {/if}

代替

{if $variable == hyphenated-value} do not work! {/if}
于 2011-06-21T19:10:01.620 回答