Я пытаюсь импортировать данные с сервера в формате XML через серверный API, для которого требуется логин.
Используя информацию по этому вопросу: Cheers MogsDad
Я могу успешно получить внешний файл XML и данные отображаются в логгере.
Я не могу за всю жизнь написать какую-либо информацию или элементы в мою таблицу. В общей ссылке @mogsdad ссылается на XML-сайт для анализа. К сожалению ссылка мертва. Текущий код возвращает файл XML. Обычно я бы попытался использовать формулу importxml, но мне не повезло.
Убрал мои попытки написания кода для анализа XML, чтобы код не выглядел ужасно
есть ли у кого-нибудь указания о том, как проанализировать некоторые файлы, или узнать рабочий URL-адрес документа XML для разбора?
Вот мой код. Заранее спасибо
function importFromXml(){
var url = 'URL HERE'; // Advance search for macs not encrypted.
var username = 'USER HERE';
var password = 'PASSWORD HERE';
var headers =
{
Authorization : "Basic " + Utilities.base64Encode(username+':'+password)
}
var options =
{
"method" : "get",
"headers": headers
};
var headers =
{
Authorization : "Basic " + Utilities.base64Encode(username+':'+password)
}
var options =
{
"method" : "get",
"headers": headers
};
// Getting "bad request" here - check the username & password
var result = UrlFetchApp.fetch(url, options);
var state=result.getContentText();
// You should check state.getResponseCode()
Logger.log('1: '+state);
Logger.log(parse(state));
}
function parse(txt) {
var doc = Xml.parse(txt, true);
return doc; // Return results
}
**** РЕДАКТИРОВАТЬ ****
После еще большей игры у меня есть некоторый прогресс.
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NoFirevault");
var range = ss.getRange(1, 1);
range.setValue(state);
Мне удалось записать содержимое XML на мой лист. Хотя и в одной камере. Когда я пытаюсь разбить данные на ячейки, использую длину данных и использую setValues. Это задевает меня, будет продолжать играть.
**** РЕДАКТИРОВАТЬ *****
После еще большей игры. Я могу получить данные XML, записанные на листе.
Там 31 записей, с различными атрибутами. Но все они записываются в одну ячейку для каждой записи.
Что является улучшением для ВСЕХ 31 записей, идущих в одну ячейку.
В случае, если это поможет, вот разметка XML, на которую я смотрю.
Я хочу данные компьютера, в разделе компьютеров.
![XML Structure](https://i.stack.imgur.com/8JDP4.png)
function importFromJamf(){
var url = 'URL HERE'; // Advance search for macs not encrypted.
var username = 'USER HERE';
var password = 'Password';
var headers =
{
Authorization : "Basic " + Utilities.base64Encode(username+':'+password)
}
var options =
{
"method" : "get",
"headers": headers
};
var headers =
{
Authorization : "Basic " + Utilities.base64Encode(username+':'+password)
}
var options =
{
"method" : "get",
"headers": headers
};
var result = UrlFetchApp.fetch(url, options);
var state = result.getContentText();
var document = XmlService.parse(state);
var entries = document.getRootElement().getChild('computers').getChildren(); // Working but values joined into one row
for (i=0;i<entries.length;i++){
var value = entries[i].getValue();
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange(i+1,1).setValue(value);
}
}