Я использую этот раздел скрипта Google на листе Google, чтобы проанализировать таблицу на веб-странице и сохранить результаты:
var doc = XmlService.parse(result);
var html = doc.getRootElement();
var resulttable = getElementsByClassName(html, 'resulttable')[0];
var descendants = html.getDescendants();
descendants.push(html);
for(var i in descendants) {
var elt = descendants[i].asElement(); <== it crashes
if(elt != null) {
var test = elt.getAttributes();
var test_bis = elt.getAttribute('http-equiv'); <== it does not crashes: 'http-equiv' exists
var classes = elt.getAttribute('class'); <== it crashes:'class' does not exists
}
}
, поскольку показано, что у меня есть некоторые ошибки (просто выдается как " ошибки сервера ") в отмеченных строках этого кода. Я также поставил блоки try-catch, но они не улавливают ошибки: сценарий внезапно завершается. Как я могу перехватить ошибки, чтобы скрипт продолжал работать, несмотря на некоторые эти xml ошибки? Я ожидал, что неопределенные элементы будут иметь место, когда методы asElement () или getAttribute () не пройдут.
Заранее спасибо.
PS Я отредактировал вопрос, добавив происхождение страницы html, как требуется в комментарии. Для анализа URL я использовал этот подход
var url = "https://albopretorio.comune.gravina.ba.it/fo/?ente=GravinaInPuglia";
var today = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy");
var payload =
{
"tipoSubmit":"ricerca",
"enti":"GravinaInPuglia",
"uo":"",
"tipoatto":"",
"anno":"",
"numda":"",
"numa":"",
"annoatto":"",
"numatto":"",
"datada":"",
"dataa":"",
"pubblicatoda":today,
"pubblicatoa":"",
"presenteal":"",
"chiave":"",
"provenienza":"",
};
var options =
{
"method" : "POST",
"payload" : payload,
"followRedirects" : true,
"muteHttpExceptions": true
};
var result = UrlFetchApp.fetch(url, options);