Как извлечь простой XML из общедоступной таблицы Google - PullRequest
0 голосов
/ 14 мая 2018

Я работаю на устройстве Arduino, в котором мне нужно получить общедоступные данные из электронной таблицы Google.

Пока что я опубликовал электронную таблицу, и я могу получить к ней доступ в https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full?range=a11:c12, которую можно открыть в браузере или в Arduino (я работаю с модулем SIM800, поэтому он может работать с HTTPS).без проблем).

Вывод этого - xml-элементы вроде (я не очень в XML):

<entry>
<id>https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full/R12C11</id>
<updated>2018-04-30T05:31:51.590Z</updated>
<category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#cell'/>
<title type='text'>K12</title>
<content type='text'>12345</content>
<link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full/R12C11'/>
<gs:cell row='12' col='11' inputValue='12345' numericValue='12345.0'>12345</gs:cell>

Один из них для каждой запрошенной ячейки.Дело в том, что здесь я вижу слишком много ненужной / избыточной информации, например, в «title» и «content» я получаю ту же информацию, что и в «gs: cell», «updated» на самом деле может быть полезной, но «ссылка»и "category" полностью доступны для меня.

Поскольку я буду работать с модулем arduino и модулем sim800 (который не может обрабатывать высокие скорости передачи данных), сделать это будет максимально просто.

Вероятно, есть способ запросить это упрощенное в HTTP-вызове, возможно, добавив некоторые параметры или изменив "full" на что-то другое.

Любая помощь будет высоко оценена

1 Ответ

0 голосов
/ 15 мая 2018

Вы хотите получить более простой ответ из range=a11:c12 идентификатора электронной таблицы 1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4.Если мое понимание правильное, как насчет получения значений с использованием языка запросов?Я думаю, что может быть несколько методов.Поэтому, пожалуйста, подумайте об этом как об одном из них.

Шаблон 1: получение ответа в виде HTML

https://docs.google.com/spreadsheets/d/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/gviz/tq?range=a11:c12&tqx=out:html

Результат:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A11:C12</title>
</head>
<body>
<table border="1" cellpadding="2" cellspacing="0">
<tr style="font-weight: bold; background-color: #aaa;">
<td></td><td></td><td></td>
</tr>
<tr style="background-color: #f0f0f0">
<td>DataInCellA11</td><td>DataInCellB11</td><td>DataInCellC11</td>
</tr>
<tr style="background-color: #ffffff">
<td>DataInCellA12</td><td>DataInCellB12</td><td>DataInCellC12</td>
</tr>
</table>
</body>
</html>

Шаблон 2: получение ответа в виде CSV

https://docs.google.com/spreadsheets/d/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/gviz/tq?range=a11:c12&tqx=out:csv

Результат:

"DataInCellA11","DataInCellB11","DataInCellC11"
"DataInCellA12","DataInCellB12","DataInCellC12"

Примечание:

  • В этом случае ответ не может быть получен в формате xml.tqx=out:xml.
  • В качестве примера вы можете получить значения с помощью curl и браузера из указанных выше URL.
  • Если вы хотите получить значения из других листов, воспользуйтесь запросомgid.В этом примере gid=od6, что означает, что 1-й лист опущен.

Ссылка:

Если я неправильно понял ваш вопрос, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...