解析错误:语法错误,意外T_OBJECT_OPERATOR

时间:2010-07-09 15:34:41

标签: php xml simplexml

尝试将myXml.xml中的一些数据添加到字符串时出现以下错误:解析错误:语法错误,意外T_OBJECT_OPERATOR。

    $xmlstr = file_get_contents('myXml.xml');
    $xml = new SimpleXMLElement($xmlstr); 

    foreach($xml->order as $order){
            $replace = array();
            $firstName = (string) $order->billing-address->first-name;
            $lastName = (string) $order->billing-address->last-name;
    }

我无法直接提供XML,因为它包含敏感数据。

谢谢, 萨姆

1 个答案:

答案 0 :(得分:12)

-符号表示减法。要在属性名称中使用它,必须使用以下语法:

$firstName = (string) $order->{"billing-address"}->{"first-name"};
$lastName = (string) $order->{"billing-address"}->{"last-name"};

一般情况下,最好使用firstNamebillingAddress等作为属性名称来避免这种情况。见CamelCase。但是,在这种情况下,您可能无法控制XML输入。