尝试创建从谷歌docs csv读取的简单小部件时Magento XML解析器错误

问题描述 投票:1回答:1

我正在尝试创建一个简单的小部件,它将从谷歌文档电子表格中读取并在我的网站上打印一个表格。到目前为止我在Block文件夹中:

<?php
class Namespace_Module_table
extends Mage_Core_Block_Abstract
implements Mage_widget_block_interface
{
protected function _toHtml()
{
    $spreadsheet_url= pathToCSV;

        if(!ini_set('default_socket_timeout',    15)) echo "<!-- unable to change socket timeout -->";

        if (($handle = fopen($spreadsheet_url, "r")) !== FALSE) 
        {
            while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
            {
                $spreadsheet_data[]=$data;
                return $spredsheet_data[];
            }
        fclose($handle);
        }
        else 
            return 'Problem reading csv';
    }
}
?>

这是一个相当基本的代码,只是为了测试它是否正确读取文件,但每当我将包含扩展名的文件夹上传到服务器时,整个开发站点都会显示:

Warning: simplexml_load_string(): Entity: line 19: parser error : Opening and ending tag mismatch: modules line 3 and config  in /home/web/lib/Varien/Simplexml/Config.php on line 510

#0 [internal function]: mageCoreErrorHandler(2, 'simplexml_load_...', '/home/uriderdev...', 510, Array)
#1 /home/uriderdev/web/lib/Varien/Simplexml/Config.php(510): simplexml_load_string('loadString('loadFile('/home/uriderdev...')
#4 /home/uriderdev/web/app/code/core/Mage/Core/Model/Config.php(318): Mage_Core_Model_Config->loadModulesConfiguration(Array, Object(Mage_Core_Model_Config))
#5 /home/uriderdev/web/app/code/local/Mage/Core/Model/App.php(406): Mage_Core_Model_Config->loadModules()
#6 /home/uriderdev/web/app/code/local/Mage/Core/Model/App.php(334): Mage_Core_Model_App->_initModules()
#7 /home/uriderdev/web/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#8 /home/uriderdev/web/index.php(92): Mage::run('', 'store')
#9 {main}

有什么我显然做错了吗?

编辑:继承我的config.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<config>
    <modules>
        <module>
            <version>0.0.1</version>
        </module>
    <global>
        <helpers>
            <module>
                <class>Namespace_Module_Helper</class>
            </module>
        </helpers>
        <blocks>
            <module>
                <class>Namespace_Module_Block</class>
            </module>
        </blocks>
    </global>
</config>
php magento csv xml-parsing google-drive-sdk
1个回答
2
投票

你的PHP代码不是问题。作为窗口小部件模块的一部分,您已经上载了一个(可能是多个)XML文件。当Magento使用PHP代码读取这个XML文件时(可能是你的config.xml,但这是基于你列出的调用堆栈的猜测),它发现XML文件无效。

警告:simplexml_load_string():实体:第19行:解析器错误:打开和结束标记不匹配:模块第3行和配置

听起来好像文件中的某些标签没有正确平衡。解决这个问题,你就可以继续前进了。

更新:根据更新的答案,以下内容

...
<modules>
    <Scooterlistwidget>
        <version>0.0.1</version>
    </Scooterlistwidget>
<global>
...

应该

<modules>
    <Scooterlistwidget>
        <version>0.0.1</version>
    </Scooterlistwidget>
</modules>
<global>

你错过了一个结束的</modules>标签。

© www.soinside.com 2019 - 2024. All rights reserved.