我的文件main.log类似于:
10-01-1970 01:42:52 Bus_Power device 9 up
10-01-1970 01:42:52 External_Power device 9 up
10-01-1970 01:42:57 Bus_Power device 1 down
10-01-1970 01:42:57 Bus_Power device 2 down
每一行都是一个数据。如何使用Dojo或纯JavaScript解析行数组?
例如:
['10-01-1970 01:42:52 Bus_Power device 9 up','10-01-1970 01:42:52 External_Power device 9 up']
答案 0 :(得分:4)
var xhr = new XMLHttpRequest();
xhr.open('GET', 'main.log', false);
xhr.send(null);
var log = xhr.responseText.split('\n');
// `log` is the array of logs you want
注意:为简单起见,请同步完成,因为没有提供有关此功能应用的详细信息。
答案 1 :(得分:3)
如果您将文件放入字符串(比如'text'),那么您可以这样做:
var lines = text.split("\n");
检查服务器上的文件是否仅使用一个换行符(UNIX样式)或CR-LF对(Windows样式)终止行。
如何将文件首先放入字符串?您可以使用dojo.xhrGet(...)
。在Dojo文档中查找。
答案 2 :(得分:1)
假设您正在阅读文本/日志文件,以下代码是从stackflow.com的another post修改的,
var contentType = "application/x-www-form-urlencoded; charset=utf-8";
var request = new XMLHttpRequest();
request.open("GET", 'test.log', false);
request.setRequestHeader('Content-type', contentType);
if (request.overrideMimeType) request.overrideMimeType(contentType);
// exception handling
try { request.send(null); } catch (e) { return null; }
if (request.status == 500 || request.status == 404 || request.status == 2 || (request.status == 0 && request.responseText == '')) return null;
lines = request.responseText.split('\n')
for( var i in lines ) {
console.log(lines[i]);
}
问题可能由编码/解码问题引起,因此我们也可能需要异常处理。有关XMLHttpRequest的更多信息,请访问here。