我有一个 log.txt 文件,其中包含具有以下结构的记录:
20190509 131952 CON Parametros: [abc....]
20190509 131952 CON Changing Endpoint to https:.....
20190509 131952 INF SQL: select .....
20190509 131952 CON Outbound with header:
<S:Envelope xmlns:S="http://schemas.........</S:Envelope>
我只是想提取带有 xml 响应的行,<S:Envelope xmlns:S="http://schemas.........</S:Envelope>
然后将相应列中的数据导入到 google 表格中。
我不是应用程序脚本方面的专家,我看不到如何使用 XmlService 来获得结果。我认为理想的做法是导入文件,如果将其导入 Google 表格,则验证每一行是否是 xml 响应。谢谢你,如果有人能给我一些关于如何获得我想要的东西的指导。我进行了研究,但找不到任何此类示例。
function Importa() {
var PastaAMonitorizar = DriveApp.getFolderById('abc_xyz'); // id da pasta onde txt está quardado
var ss = SpreadsheetApp.openById('abc_xyz'); //id da folha para onde são importados os dados
var files = PastaAMonitorizar.getFiles();
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var targetRng = ss.getSheetByName("INFO"),
fileTextObj = file.getAs('text/plain'),
fileText = fileTextObj.getDataAsString('ISO-8859-1'),
lines = fileText.split('\n'),
...
我知道导入一个 txt 文件,但我不知道如何只提取 xml 响应
从 log.txt 中提取所需的数据
您需要提供文件 ID。
这是我的文件网址: https://anyfile-notepad.semaan.ca/app#edit/GoogleDrive/1KTusR1iiQQHB1lXQfYDh2MEjDHEOsdNm
id 是最后一个正斜杠之后的字符串。
function extractData() {
var file=DriveApp.getFileById('fileId');
var content=file.getBlob().getDataAsString();
var a1=content.split('\n');
var a2=a1.filter(function(elem){return (elem.slice(0,1)=='<')});
return a2;//and array of your desired strings
}
这将在一个简单的对话框中显示您的结果:
function extractData() {
var file=DriveApp.getFileById('fileId');
var content=file.getBlob().getDataAsString();
var a1=content.split('\n');
var a2=a1.filter(function(elem){return (elem.slice(0,1)=='<')});
var html='';
for(var i=0;i<a2.length;i++) {
html+='<br />' + a2[i].replace(/[\u00A0-\u9999<>\&]/gim, function(j) {return '&#'+j.charCodeAt(0)+';';})
}
var userInterface=HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Desired Strings')
}
此代码:replace(/[\u00A0-\u9999<>\&]/gim, function(i) {return '&#'+i.charCodeAt(0)+';';})
由@Chris Baker 提供。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句