从 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驾车服务。
资源
请问各位,如何解析这个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驾车服务。
资源