【问题标题】:Jquery Parse Excel XML to ArrayJquery 将 Excel XML 解析为数组
【发布时间】:2015-02-23 22:29:56
【问题描述】:

好的。我的代码显然缺少一些东西。我正在尝试将 XML 文档解析为数组数组(二维数组)。父数组应该是行,子数组应该是 .一个问题是我使用的是 Excel 生成的 XML 文档。我将它保存在 Excel 中,以便我可以保留格式,因此其他人可以轻松地编辑 XML。 Excel XML 输出如下所示:

<Row ss:Index="9" ss:AutoFitHeight="0">
 <Cell><Data ss:Type="String">George</Data></Cell>
 <Cell><Data ss:Type="String">Carlson</Data></Cell>
 <Cell><Data ss:Type="String">65</Data></Cell>
 <Cell><Data ss:Type="String">A</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
 <Cell><Data ss:Type="String">Anna</Data></Cell>
 <Cell><Data ss:Type="String">Dooley</Data></Cell>
 <Cell><Data ss:Type="String">33</Data></Cell>
 <Cell><Data ss:Type="String">A</Data></Cell>
</Row>

正如我之前所说,我希望父数组包含“行”,并且我希望子数组包含“数据”中的文本。我的调试程序一直告诉我我用我的代码创建的数组是未定义的:

$(document).ready(function(){
var Array, typeA, typeB, typeC, typeD;

$.ajax({
          url: 'file.xml',
          type: 'GET', 
          dataType: 'xml',
          success: function(returnedXMLResponse){

            $('Row', returnedXMLResponse).each(function(){
            Array = $('Data', this).text();
        })
    }           
 });

有什么想法吗???

【问题讨论】:

    标签: jquery arrays xml excel 2d


    【解决方案1】:

    您当前所做的是在 each 循环的每次迭代中覆盖变量 Array

    您想要的是定义一个外部数组,并在每次行迭代中创建一个新数组(或对象)并将其推送到外部数组中

    var Array = [];
    
    $.ajax({
        url: 'file.xml',
        type: 'GET',
        dataType: 'xml',
        success: function (returnedXMLResponse) {
            $(returnedXMLResponse).find('Row').each(function () {
                var rowArray = []; // sub array
                /* loop over each cell */
                $('Data', this).each(function () {
                    rowArray.push($(this).text());
                });
                /* push row into main array */
                Array.push(rowArray);
            })
        }
    });
    

    【讨论】:

    • 我试过了,但是没有用。 :( 知道为什么它不起作用吗?另外,如果这很重要,我正在使用 jquery-1.11.1.js。它仍然说 Array 在我调试时未定义。
    • 我应该做 $('Cell'.'Data', this).each(function () {
    • 哦,是的,我正在使用 IE10。这是一个工作环境,所以我无法升级。
    • 尝试了最新版本的 jquery 并遇到了同样的问题。脚本运行良好,没有错误,但 Array 最终未定义。
    • 我的猜测是您在返回数据之前尝试在成功回调之外访问Array。 ajax 是异步的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多