Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SenchaTouch中用JavaScript逐行读取凌乱的xml数据_Javascript_Xml_Extjs_Sencha Touch - Fatal编程技术网

如何在SenchaTouch中用JavaScript逐行读取凌乱的xml数据

如何在SenchaTouch中用JavaScript逐行读取凌乱的xml数据,javascript,xml,extjs,sencha-touch,Javascript,Xml,Extjs,Sencha Touch,我有一个凌乱的xml数据源(它不在我的控制范围内,无论如何也不会在我的控制范围内) 如您所见,只有一个节点包含多行数据 对于每一行数据,都有许多不同的字段,没有标题或开始/结束标记,因此将这些数据行解析为小块非常不同 我使用的是senchatouch和JavaScript 我能想到的最进一步的步骤是首先从标签中取出大块数据,然后我不知道下一步怎么做 欢迎任何建议 多谢各位 我将根据换行符\n将数据拆分成一个数组。然后,看起来您可以使用逗号拆分以获得列。以下是一个例子: var

我有一个凌乱的xml数据源(它不在我的控制范围内,无论如何也不会在我的控制范围内)

如您所见,只有一个节点包含多行数据

对于每一行数据,都有许多不同的字段,没有标题或开始/结束标记,因此将这些数据行解析为小块非常不同

我使用的是senchatouch和JavaScript

我能想到的最进一步的步骤是首先从标签中取出大块数据,然后我不知道下一步怎么做

欢迎任何建议


多谢各位

我将
根据换行符
\n
将数据拆分成一个数组。然后,看起来您可以使用逗号拆分以获得列。以下是一个例子:

        var rows = myInfo.split('\n');
        console.log(rows);
        Ext.each(rows,function(row){
           var columns = row.split(',');
           console.log(columns)
        });
我做了一个演示

更新:

在JSFiddle或senchafiddle这样的演示站点上,通常无法连接到ajax请求的实时源代码,因为。他们获取虚拟数据,基本上伪造响应

我无法从你在fiddle上发布的url中获取任何数据。此外,sencha.fiddle中的xml解析器可能存在问题。我在JSFIDLE中创建了一个包含解析信息的ExtJS ajax请求的虚拟示例

基本守则如下:

Ext.Ajax.request({
    url:'/echo/xml/',//the js fiddle required url for example ajax requests
    method:'POST',
    params:{//These parameters are just passed this way for JSFiddle
        xml:'<data>dsajjdsj,34343,434343\ndfgsdf,34343,43</data>',
        delay:1
    },
    success:function(response){       
        var data = response.responseXML.documentElement.textContent;
        var rows = data.split('\n');
        Ext.each(rows,function(row){
            var columns = row.split(',');
            console.log(columns);
        });
    }
});
Ext.Ajax.request({
url:“/echo/xml/”,//js FIDLE所需的url,例如ajax请求
方法:'POST',
params:{//这些参数只是通过这种方式传递给JSFIDLE
xml:'Dsajdsj,343\ndfgsdf,34343,43',
延误:1
},
成功:功能(响应){
var data=response.responseXML.documentElement.textContent;
var rows=data.split('\n');
Ext.each(行,函数(行){
var columns=row.split(',');
console.log(列);
});
}
});

如果您可以提供虚拟数据,我可以修改示例以包含与您的数据更相似的数据。

谢谢:),在我的情况下,在大数据块中没有“\n”。但是我会尝试一下,看看它是否有效。
\n
代表一个新的行。显示数据时,您看不到它。但是,数据中的行尾字符可能不同。您好,weeksdev,谢谢您的回复。我按照你的指示做了,但是替换了你的数据并输入了now.xml,然后什么都不起作用。你能看一下吗?谢谢大家,weeksdev,谢谢你们的更新。但是,演示数据太简单,无法反映我的问题,因此我更新了您的数据并放入了我的数据源片段,然后演示停止工作。如果您需要查看,这里还有数据源。(谢谢你的帮助:)太好了,谢谢。我在记事本++中检查了您的数据(允许查看换行符),有尾随的crlf。这是一个与您的数据相似的示例。希望这有帮助。将CSV数据包装在几个XML标记中并不能使其成为XML。这种数据格式非常糟糕。嗨@EvanTrimboli我完全同意你的看法。然而,这不是我的数据源,因此,我只能读取它,但无法纠正其结构。请不要因为别人的过错而否决我的问题。thxI没有。但是将其标记为XML是一种延伸。hi@Evantimboli我没有将其标记为XML,数据源本身有。。。。。。。