Я получаю следующую ошибку при попытке добавить некоторые данные из 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 напрямую, так как он содержит конфиденциальные данные.
Спасибо, Сэм
Знак -
означает вычитание. Чтобы использовать его в именах свойств, вы должны использовать этот синтаксис:
$firstName = (string) $order->{"billing-address"}->{"first-name"}; $lastName = (string) $order->{"billing-address"}->{"last-name"};
В общем, вероятно, лучше использовать firstName
, billingAddress
и т. Д. Как имена свойств, чтобы избежать этого. См. CamelCase . В этом случае, однако, вы не можете контролировать вход XML.