У меня возникли трудности с анализом XML из запроса boardgamegeek, чтобы я мог заполнить листок Google данными. Вот пример BGG XML:Анализ XML с помощью скрипта Google Apps
<boardgames termsofuse="http://boardgamegeek.com/xmlapi/termsofuse">
<boardgame objectid="423">
<yearpublished>1995</yearpublished>
<minplayers>3</minplayers>
<maxplayers>6</maxplayers>
<playingtime>300</playingtime>
<name primary="true" sortindex="1">1856</name>
</boardgame>
</boardgames>
А вот Google Apps Script Я написал, чтобы разобрать его:
//get the data from boardgamegeek
var url = 'http://www.boardgamegeek.com/xmlapi/boardgame/' + bggCode;
var bggXml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(bggXml);
var root = document.getRootElement();
var entries = new Array();
entries = root.getChildren('boardgame');
for (var x = 0; x < entries.length; i++) {
var name = entries[x].getAttribute('name').getValue();
var yearpublished = entries[x].getAttribute('yearpublished').getValue();
var minplayers = entries[x].getAttribute('minplayers').getValue();
var maxplayers = entries[x].getAttribute('maxplayers').getValue();
}
//SpreadsheetApp.getActiveSheet().getRange(i+1,7).setValue(yearpublished);
Logger.log(entries);
В настоящее время я получаю сообщение об ошибке в для цикла, вызванного записи - NULL. Если я прокомментирую цикл и зарегистрирую, как выглядит bggXml, он выглядит так же, как в примере выше. Однако, лесозаготовительные переменные дальше я получаю следующее:
document => [Document: No DOCTYPE declaration, Root is [Element: <boardgames/>]]
root => [Element: <boardgames/>]
entries => [[Element: <boardgame/>]]
entries[2] => undefined
Поскольку bggXml выглядит точно так же, как я ожидал, но документ не, я предполагаю, что проблема заключается в разборе?