XML加载文件错误

时间:2016-07-06 19:54:10

标签: php xml parsing

我安装了一个脚本,当我登录管理仪表板时收到此错误:

  

警告(2):simplexml_load_file():/ app/Plugin/PaypalAdaptive/info.xml:7:解析器错误:xmlParseEntityRef:无名称[APP / Controller / PluginsController.php,第1151行]

我检查了文件pluginscontroller.php,这是代码。我复制了整个文件的一部分。

第1151行是:$xml = simplexml_load_file($file);

完整代码从这里开始:

        // get all installed plugins
        $plugins = $this->Plugin->find( 'all', array(
            'order' => 'id DESC'
        ));

        $totalNewVersion = 0;
        if($plugins != null)
        {
            foreach($plugins as $k => $plugin)
            {
                $plugin = $plugin['Plugin'];
                $file = sprintf(PLUGIN_INFO_PATH, $plugin['key']);
                if(file_exists($file))
                {
                    $xml = simplexml_load_file($file);
                    if($xml != null && isset($xml->version))
                    {
                        if((string)$xml->version > $plugin['version'])
                        {
                            $totalNewVersion += 1;
                        }
                    }
                }
            }
        }
        return $totalNewVersion;
    }

    public function admin_do_upgrade( $id )
    {
        if(!$this->Plugin->hasAny(array('id' => $id)))
        {
            $this->Session->setFlash(__('This plugin does not exist'), 'default', array('class' => 'Metronic-alerts alert alert-danger fade in' ));
        }
        else 
        {

2 个答案:

答案 0 :(得分:0)

它告诉你XML无效,可能是因为它包含“&”应该以{{1​​}}转义的字符。

做任何有缺陷的商品 - 将其发回供应商并告诉他们解决。

答案 1 :(得分:0)

我终于解决了它,我在代码中进行了一些编辑,并使用了"&"而不是"&"这就是导致问题的因素。