2016-02-15 127 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的当前目录不是你认为的那样,所以失败仅仅意味着解析器无法找到该文件。尝试使用文件的完整路径。