3

我正在尝试在名为“listing-id”的节点中捕获 XML 数据。

我创建对象并查看对象中的节点,除了名称中带有“-”的节点之外,它们都可以工作。这是我试图捕获数据但它不起作用的方式。有什么建议么?

$xmlObj = simplexml_load_file("http://somewebsite.com/file.xml");
$vehObject = $xmlObj->listings->listing;

//begin for each loop
$stockNo = $vehObject[$i]->listing-id;  //returns "0" instead of real stock number.
$VIN = $vehObject[$i]->vin; // this VIN returns just fine....
//end for each loop

正如您在上面看到的,我正在尝试多个数据点...... VIN(和其他字段)工作得很好。stockNo 没有返回,唯一的区别是所有其他节点的“-”。

提前致谢!

4

1 回答 1

3

连字符是 PHP 变量名和对象属性中的无效字符。不过,这并不会阻止某些库(如 SimpleXML 和 JSON)创建它们。解决方案是使用字符串形式,例如

$vehObject[$i]->{'listing-id'}

请参阅此处的示例 - http://php.net/manual/simplexml.examples-basic.php#example-5422

于 2013-08-28T03:45:23.380 回答