且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

谷歌脚本XML获取父母?

更新时间:2023-12-05 16:49:10

我不太了解如何确定需要的节点,但是,在确定它们之后,可以对所需的前两列执行以下操作:

I do not understand very well how you determine the nodes that need, however, after determining them, you can do the following for the first 2 columns you need:

  ...
  var target = "http://www.sec.gov/Archives/edgar/data/867773/000086777313000052/spwr-20130630.xml";
  var pageTxt = UrlFetchApp.fetch(target).getContentText();
  var xbrl = XmlService.parse(pageTxt);
  var element = xbrl.getRootElement().getChildren()[1420];
  Logger.log(element.getNamespace().getPrefix()); // us-gaap
  Logger.log(element.getName()); // WeightedAverageNumberOfDilutedSharesOutstanding
  ...

使用 XmlService 访问新服务旧服务,简称为 Xml .

更新

我对 XmlService 的经验很少,不太确定您可以使用通配符搜索节点,这是一个非常基本的示例,可能效率很低:

My experience with XmlService is little, not too sure if you can use wildcards for the search of nodes, a very basic example and probably inefficient can be:

  ...
  var ns = 'us-gaap';
  var target = "http://www.sec.gov/Archives/edgar/data/867773/000086777313000052/spwr-20130630.xml";
  var pageTxt = UrlFetchApp.fetch(target).getContentText();
  var xbrl = XmlService.parse(pageTxt);
  var elements = xbrl.getRootElement().getChildren();
  var el, attr;
  for (var element = 0, len = elements.length; element < len; ++element) {
    el = elements[element];
    if (el.getNamespace().getPrefix() === ns) {
      /* YOUR CODE */
      Logger.log(ns);
      Logger.log(el.getName());
      attr = el.getAttribute('contextRef');
      if(attr) Logger.log(attr.getValue());
    }
  }
  ...