В ответе мы получаем xml-файл, затем конвертируем в SimpleXMLElement, затем обращаемся к элементам и атрибутам по мере необходимости. Тем не менее, мы получаем «Попытка получить свойство не-объекта», когда xml загружается непосредственно из ответа строки по сравнению с сохраненным ответом.SimpleXMLElement - попытка получить свойство не-объекта
//This code works
$response = simplexml_load_file("response.xml");
var_dump($response);
echo $response->RESPONSE->RESPONSE_DATA->FILE_INFORMATION['Order_Number'];
//Returns
//object(SimpleXMLElement)#153 (4) { ["@attributes"]=> array(1)...the rest of the xml file...
//Order_Number
//This code returns error
$response = simplexml_load_string($response);
var_dump($response);
echo $response->RESPONSE->RESPONSE_DATA->FILE_INFORMATION['Order_Number'];
//Returns
//object(SimpleXMLElement)#153 (1) { [0]=> string(33864) "" }
//Notice: Trying to get property of non-object in...
Что бы вызвать XML сбой при использовании simplexml_load_string вместо simplexml_load_file?
Вот отрывок из файла XML:
<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE_GROUP>
<RESPONSE>
<RESPONSE_DATA>
<FILE_INFORMATION Order_Number="19222835">
...
</FILE_INFORMATION>
</RESPONSE_DATA>
</RESPONSE>
</RESPONSE_GROUP>
и ваша строка хорошо сформирована? разместите свою строку –
Да, хорошо сформирована. response.xml равно $ response. Я бы опубликовал, но это 50k строк ... – TimNguyenBSM
уменьшить строки в xml, и если он работает с simplexml_load_file, отредактируйте вопрос с содержимым xml –