我解析包含以下字段的xml文件:
<offers>
<offer>
<type>Vehicle</type>
<type-id>2</type-id>
<category>Car</category>
<category-id>3</category-id>
...
</offer>
<offer>
<type>Vehicle</type>
<type-id>2</type-id>
<category>Car</category>
<category-id>3</category-id>
...
</offer>
...
</offers>
首先使用$xml = simplexml_load_file($file);
,在尝试获取foreach循环中的值后,我会收到错误&#34;使用未定义的常量ID - 假设&#39; id&#39;&#34;对于字段包含&#39; id&#39;作为其中的一部分,例如&#39; type-id&#39;或&#39; category-id&#39;
foreach($xml->offers->offer as $offer) {
echo $offer->type; // WORKS JUST FINE
echo $offer->type-id; //THIS GIVE ME ERROR
}
我尝试设置ini_set('error_reporting', E_ALL & ~E_NOTICE);
,但在其后面带有&#39; id&#39;返回零而不是值。
答案 0 :(得分:4)
变量的名称是“type-id”,不能简单地写成$ type-id,你需要使用大括号来访问它:$ {“type-id”}
echo $offer->{"type-id"};
答案 1 :(得分:1)
试试这个:
foreach($xml->offers->offer as $offer) {
echo $offer->type;
$typeId = 'type-id';
echo $offer->{$typeId};
}
答案 2 :(得分:0)
您必须使用{和}
访问对象/变量echo $offer->{type-id};