2016-02-15 3 views
4

Я пытаюсь разобрать XML в массив с помощью оркестра, который представляет собой пакет XML Parser для Laravel. Когда я пытаюсь запустить код, я получаю сообщение об ошибке «Невозможно разобрать XML из строки». Ниже приведен файл test.xml, который я пытаюсь проанализировать в массиве.Невозможно разобрать XML из строки

<?xml version="1.0" encoding="utf-8"?> 
<api> 
<user followers="5"> 
<id>1</id> 
<email>[email protected]</email> 
</user> 
</api> 

и в моем контроллере это, как я пытаюсь разобрать файл XML

public function index() 
{ 

$xml = XmlParser::load('test.xml'); 
$user = $xml->parse([ 
'id' => ['uses' => 'user.id'], 
'email' => ['uses' => 'user.email'], 
'followers' => ['uses' => 'user::followers'], 
]); 

print_r($user); 

} 

Кто-нибудь есть идея, почему я не в состоянии разобрать XML в массив?

+0

Ваш код очень похож на оригинальный пример, за исключением того, что вы получили объявление xml в первой строке. Вы пробовали оставить это? – igorshmigor

+2

Учитывая, что оркестр, кажется, бросает это исключение, если 'simplexml_load_file' терпит неудачу, вы абсолютно уверены, что« test.xml »загружается правильно? Это в правильном каталоге? Что произойдет, если вы используете полный путь к файлу? –

+0

@igorshmigor Я попытался оставить объявление xml, и он все равно дает мне то же сообщение об ошибке. – jaahvicky

ответ

2

XmlParserthrows that error in the event of a basic failure в simplexml_load_file с путем файла вы передаете в. Учитывая, что вы не указывать полный путь к файлу, мое предположение было бы, что текущий каталог PHP не является то, что вы думаете, это так отказ просто означает, что синтаксический анализатор не может найти файл. Попробуйте использовать полный путь к файлу.

Смежные вопросы