从 Google 驱动器中解析 XML Javascript(Google 脚本)

Parse XML from Google Drive in Javascript (Google Scripts)

请问各位,如何解析这个XML文件?我想使用几个子节点。

<are:Ares_odpovedi xmlns:are="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer_vreo/v_1.0.0" odpoved_datum_cas="2022-05-09T15:00:10" odpoved_pocet="1" odpoved_typ="Vypis_VREO" vystup_format="XML" xslt="klient" validation_XSLT="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_odpovedi.xsl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer_vreo/v_1.0.0 http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer_vreo/v_1.0.0/ares_answer_vreo.xsd" Id="ares">
<are:Odpoved>
 <are:Pomocne_ID>0</are:Pomocne_ID>
 <are:Vysledek_hledani>
  <are:Kod>1</are:Kod>
 </are:Vysledek_hledani>
 <are:Pocet_zaznamu>1</are:Pocet_zaznamu>
 <are:Vypis_VREO>
  <are:Uvod>
   <are:Nadpis>Výpis z veřejného rejstříku v ARES - elektronický opis</are:Nadpis>
   <are:Aktualizace_DB>2022-05-09</are:Aktualizace_DB>
   <are:Datum_vypisu>2022-05-09</are:Datum_vypisu>
   <are:Cas_vypisu>15:00:09</are:Cas_vypisu>
   <are:Typ_vypisu>aktualni</are:Typ_vypisu>
  </are:Uvod>
  ...

我的代码:

var xml = UrlFetchApp.fetch("https://drive.google.com/file/d/[fileID]").getContentText();
var data = XmlService.parse(xml);
Logger.log(data.type);

我收到错误:

Exception: Error on line 1257: The element type "meta" must be terminated by the matching end-tag "</meta>".

即使没有标签“meta”并且 xml 文档中的最后一行是 1008。

提前致谢!

替换

var xml = UrlFetchApp.fetch("https://drive.google.com/file/d/[fileID]").getContentText();

来自

var xml = DriveApp.getFileById(fileID).getBlob().getDataAsString();

由于您的脚本使用 UrlFetchApp 检索 Google Drive 文件,使用 URL 形式 https://drive.google.com/file/d/[fileID] 您的脚本正在获取文件的 HTML 内容预览。

有两条可能的路径,使用 https://drive.google.com/uc?export=download&id=fileID 形式的 URL 或使用 Google Drive Service,即 DriveApp.getFileById(fileID).getBlob().getDataAsString().

如果您打算使用 UrlFetchApp,您应该制作文件 public 或传递适当的凭据。考虑到这一点,最方便的解决方案是使用 Google驾车服务。

资源