【发布时间】:2016-02-15 09:24:25
【问题描述】:
我正在尝试使用 https://github.com/orchestral/parser 将 XML 解析为数组,这是 Laravel 的 XML 文档解析器包。
当我尝试运行代码时,我收到一条错误消息:
Unable to parse XML from string.
下面是我试图解析为数组的 test.xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<api>
<user followers="5">
<id>1</id>
<email>crynobone@gmail.com</email>
</user>
</api>
在我的 Controller 中,这就是我尝试解析 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 解析为数组吗?
【问题讨论】:
-
您的代码看起来很像原始示例,不同之处在于您在第一行中有 xml 声明。你试过把它排除在外吗?
-
鉴于如果
simplexml_load_file失败,Orchestra 似乎会抛出该异常,您是否绝对确定“test.xml”正在正确加载?它在正确的目录中吗?如果使用文件的完整路径会发生什么? -
@igorshmigor 我试过省略 xml 声明,但它仍然给我同样的错误信息。
-
@MattGibson 你说得对,如果我使用完整路径,它就可以工作。谢谢。
-
没问题。我已经发布了答案。