【问题标题】:Simplexml (invalid argument supplied foreach)Simplexml(foreach 提供的参数无效)
【发布时间】:2012-06-21 22:28:19
【问题描述】:

ERROR= 警告:在第 168 行 [path]/deals2.php 中为 foreach() 提供的参数无效

XML:http://www.freeimagehosting.net/2sjdd

不知道我做错了什么。以前从来没有遇到过这个问题。

$xml = simplexml_load_file('http://api.yipit.com/v1/deals/?key=mykey&division=houston&format=xml');

foreach($xml->deals->list-item as $shortcut)
{
$title = $shortcut->{'title'};

echo $title;

}    

【问题讨论】:

标签: foreach simplexml arguments


【解决方案1】:
  1. 您的 xml 中没有“交易”元素名称
  2. 每个带有短划线符号“-”的元素名称都必须使用 {'some-element'} 进行转义,因此即使 list-item 元素存在(它不存在),您也需要对其进行转义。 http://www.kombitz.com/2010/02/10/php-xml-problem-hyphen-in-the-element-name/
  3. 我将你的代码修改为

    foreach($xml->meta->code as $a) { echo $a; }

而且效果很好。试试我上面的建议,并尝试使用实际存在的元素。

顺便说一句,您的 XML 甚至没有正确的结构。那是什么

<response/>

在那里??很多错误。 :)

【讨论】:

  • 正在从 Yipit 中提取 XML。不在我的手中:(但是是的,连字符是问题所在。使用了 xpath 和 {'list-item'} 谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-05-17
  • 2011-02-07
相关资源
最近更新 更多