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


Magento XML parser error when trying to create simple widget which reads from google docs csv

我正在尝试创建一个简单的小部件,它将读取谷歌文档电子表格并在我的网站上打印一个表格。到目前为止,在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代码不是问题所在。作为小部件模块的一部分,您已经上传了一个,可能不止一个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>标记。