在PHP中使用带有连字符的XML节点名称

wil*_*sdb 39 php simplexml

我试图从XML中提取一些数据但是当我执行以下操作时,我得到了一个

警告:为foreach()提供的参数无效...

代码示例:

foreach ($xml->custom-field-value as $milestone)
{
    ...     
}
Run Code Online (Sandbox Code Playgroud)

它适用于单个单词的节点名称,所以我猜它不喜欢连字符.我是否需要逃脱它们?如果是这样的话?

cod*_*ict 74

从PHP 手册:

访问包含PHP命名约定下不允许的字符的XML文档中的元素(例如连字符)可以通过将元素名称封装在大括号和撇号中来实现.

在你的情况下你做:

$xml->{'custom-field-value'}
Run Code Online (Sandbox Code Playgroud)

  • 这可能被标记为重复问题,但我发现这个 Q/A 组合比“原始”更有用,因为它对我的问题的观点是正确的。 (2认同)