2016-02-15 183 views
4

我想解析XML到數組使用orchestra這是一個XML文檔解析器包的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'失敗,Orchestra似乎會拋出異常,您是否確定「test.xml」正在被正確加載?它在正確的目錄中嗎?如果使用文件的完整路徑會發生什麼? –

+0

@igorshmigor我已經試過了xml聲明,它仍然給我同樣的錯誤信息。 – jaahvicky

回答

2

XmlParserthrows that error in the event of a basic failuresimplexml_load_file與您傳遞的文件的路徑。鑑於你沒有指定文件的完整路徑,我的猜測是PHP的當前目錄不是你認爲的那樣,所以失敗僅僅意味着解析器無法找到該文件。嘗試使用文件的完整路徑。