Me gustaría preguntarle, por favor, ¿cómo analizar este archivo XML? Me gustaría trabajar con un par de nodos secundarios.
<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> ...Mi código:
var xml = UrlFetchApp.fetch("https://drive.google.com/file/d/[fileID]").getContentText(); var data = XmlService.parse(xml); Logger.log(data.type);Y recibo error:
Exception: Error on line 1257: The element type "meta" must be terminated by the matching end-tag "</meta>".Aunque no hay etiquetas "meta" y la última fila en el documento xml es 1008.
¡Gracias de antemano!
Reemplazar
var xml = UrlFetchApp.fetch("https://drive.google.com/file/d/[fileID]").getContentText();por
var xml = DriveApp.getFileById(fileID).getBlob().getDataAsString(); Como su secuencia de comandos utiliza UrlFetchApp para recuperar un archivo de Google Drive mediante una URL con el formato https://drive.google.com/file/d/[fileID] su secuencia de comandos obtiene el contenido HTML de la vista previa del archivo.
Hay dos caminos posibles, use una URL de la forma https://drive.google.com/uc?export=download&id=fileID o use el servicio Google Drive, es decir DriveApp.getFileById(fileID).getBlob().getDataAsString() .
Si va a usar UrlFetchApp , debe hacer público el archivo o pasar las credenciales apropiadas, considerando que la solución más conveniente es usar el Servicio Google Drive.
Recursos