无法从已解析的 XML javascript(google 脚本)中获取子元素

Cannot get child element from parsed XML javascript (google script)

我正在尝试获取子节点,但它打印为空。 我的代码:

function findFile(ICO){
  var fileName = ICO + '.xml';
  const folderFiles = DriveApp.getFolderById('folderID').getFiles();
  while (folderFiles.hasNext()) {
    var folderFile = folderFiles.next();
    if(folderFile.getName() == fileName){
      return folderFile.getId();
      break;
    }
  }
}

function filesearch(ICO){
  var fileId = findFile(ICO);
  var fileFound = DriveApp.getFileById(fileId).getBlob().getDataAsString();
  var rawXml = XmlService.parse(fileFound);
  return rawXml;
}


function parseXML(){
  var text_ICO_txt = '27074358';
  var docXml = filesearch(text_ICO_txt);
  var root = docXml.getRootElement();
  Logger.log(root);
  var child1 = root.getChild('Ares_odpovedi');
  Logger.log(child1);
}

它打印:

[Element: <are:Ares_odpovedi [Namespace: http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer_vreo/v_1.0.0]/>]
null

所以我尝试了 Ares_odpovedi 的不同变体(包括 Element: 之后的整个文本),但子节点为空。

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>
  <are:Zakladni_udaje>
...

请指点一下,怎么处理?

提前致谢!

本回答以修改您的显示脚本为前提。

当我看到你的XML数据时,Ares_odpovedi的标签似乎是根元素。所以,比如当你想获取Odpoved的元素时,请修改如下

发件人:

var root = docXml.getRootElement();
Logger.log(root);
var child1 = root.getChild('Ares_odpovedi');
Logger.log(child1);

收件人:

var root = docXml.getRootElement();
Logger.log(root);
var child1 = root.getChild('Odpoved', root.getNamespace());
Logger.log(child1);

参考: