Google apps script 从Amazon MWS订单解析XML
由于几天的时间和大量的谷歌搜索,我试图在这里得到我的答案 我想用GoogleApps脚本将Amazon MWS xml解析为GoogleSheets API调用正在工作,我能够将答案写入工作表中的一个单元格中,但我无法将XML元素拆分为单个单元格 以下是我尝试访问XML元素的方式:Google apps script 从Amazon MWS订单解析XML,google-apps-script,amazon-mws,parsexml,Google Apps Script,Amazon Mws,Parsexml,由于几天的时间和大量的谷歌搜索,我试图在这里得到我的答案 我想用GoogleApps脚本将Amazon MWS xml解析为GoogleSheets API调用正在工作,我能够将答案写入工作表中的一个单元格中,但我无法将XML元素拆分为单个单元格 以下是我尝试访问XML元素的方式: var response = UrlFetchApp.fetch('https://mws.amazonservices.de/Orders/2013-09-01', options); var response
var response = UrlFetchApp.fetch('https://mws.amazonservices.de/Orders/2013-09-01', options);
var responseXml = response.getContentText();
var Sheet_Temp = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Temp')
Sheet_Temp.getRange(1, 1).setValue(response)
var xmlDoc = XmlService.parse(responseXml);
var root = xmlDoc.getRootElement();
var ns = root.getNamespace();
Sheet_Report.getRange(1, 1).setValue(ns);
var row = new Array();
var feed = root.getChild("ListOrdersResult", ns).getChild("Orders", ns).getChild("Order", ns);
var AmazonOrderId = feed.getChildren("AmazonOrderId", ns).getValue();
最后一行引发错误:
TypeError:Objekt[元素:https://mws.amazonservices.com/Orders/2013-09-01]/>]nicht gefunden(Zeile 497,日期“代码”)
这是XML的简短版本。真正的文件有数千种不同的顺序:
2018-01-03T09:07:08Z
标准订单
2018-01-01T00:03:57Z
7vndn9example@marketplace.amazon.de
306-8775721-示例
假的
2018-01-03T09:37:38Z
1.
加快
装船
亚马逊
假的
0
标准
法比示例
欧元
10.95
假的
2018-01-03T09:07:08Z
A1PA6795UKMFR9
AFN
其他
温内登
71364
巴登-沃尔滕堡
判定元件
费边例子
例1
假的
加快
306-8775721-示例
2018-01-13T17:37:01Z
标准订单
2018-01-01T03:17:35Z
004xssfxexample@marketplace.amazon.de
306-1651353-示例
假的
2018-01-13T18:07:23Z
1.
标准
装船
亚马逊
假的
0
标准
F.例子
欧元
15.15
假的
2018-01-13T17:37:01Z
A1PA6795UKMFR9
AFN
其他
哥林
3381
尼德斯特雷希
在
弗兰兹的例子
例9
假的
标准
306-1651353-示例
2018-01-01T12:00:00Z
aea97379-21ae-4431-a16d-4a6569c4124b
如何在google工作表中获取此XML
编辑:我做了一些更改,但现在出现以下错误:
TypeError:Objekt[元素:https://mws.amazonservices.com/Orders/2013-09-01]/>]nicht gefunden(Zeile 497,日期“代码”)
好的,我已经开始运行了。以下是我的解决方案:
var response = UrlFetchApp.fetch('https://mws.amazonservices.de/Orders/2013-09-01', options);
var responseXml = response.getContentText();
var Sheet_Orders = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Orders')
var document = XmlService.parse(responseXml);
var root = document.getRootElement();
var namespace = document.getRootElement().getNamespace();
var orders = root.getChild("ListOrdersResult", namespace).getChild("Orders", namespace).getChildren("Order", namespace);
var laenge = orders.length;
for (var i = 0; i < orders.length; i++) {
var Country = orders[i].getChild("ShippingAddress", namespace).getChild("CountryCode", namespace).getValue();
var ShipDate = orders[i].getChild("LatestShipDate", namespace).getValue();
var Amount = orders[i].getChild("OrderTotal", namespace).getChild("Amount", namespace).getValue();
var Business = orders[i].getChild("IsBusinessOrder", namespace).getValue();
Sheet_Orders.getRange([i+1], 1).setValue(ShipDate);
Sheet_Orders.getRange([i+1], 2).setValue(Amount);
Sheet_Orders.getRange([i+1], 3).setValue(Business);
Sheet_Orders.getRange([i+1], 4).setValue(Country);
}
var response=UrlFetchApp.fetch('https://mws.amazonservices.de/Orders/2013-09-01",选择),;
var responseXml=response.getContentText();
var Sheet_Orders=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Orders'))
var document=XmlService.parse(responseXml);
var root=document.getRootElement();
var namespace=document.getRootElement().getNamespace();
var orders=root.getChild(“ListOrdersResult”,命名空间)。getChild(“orders”,命名空间)。getChildren(“Order”,命名空间);
var laenge=orders.length;
对于(变量i=0;i
谢谢您的回答。我将脚本更改为:var xmlDoc=XmlService.parse(responseXml);var root=xmlDoc.getRootElement();var AmazonOrderId=root.getChild(“订单”).getChild(“订单”).getChild(“AmazonOrderId”).getValue();表单报告。getRange(1,1)。设置值(AmazonOrderId)但是我得到了这个错误信息:TypeError:Methode“getChild”von null kann nicht aufgerufen werden。(Zeile 518,Datei“Code”)
@tehhowch感谢您的更正。您知道错误的原因以及如何修复它吗?