在Google Script中访问XML节点

时间:2017-06-01 14:29:08

标签: google-apps-script

我有一个像这样形成的HTTP响应:

<records>
<record>
<f id="60">
ANT708-1-BA-M110-001-IFC.PDF
<url>
https://hardermech.quickbase.com/up/bi8vxepu8/g/r9p6/eb6/va/ANT708-1-BA-M110-001-IFC.PDF
</url>
</f>
<f id="276">1</f>
<update_id>1496326605486</update_id>
</record>
</records>

如何使用Google Script访问“f id 276”的数据值“1”?

1 个答案:

答案 0 :(得分:1)

如何关注示例脚本?

XmlService用于此脚本。详细信息为https://developers.google.com/apps-script/reference/xml-service/xml-service

示例脚本:

function sample() {
  var data = '\
    <records> \
      <record> \
        <f id="60"> \
        ANT708-1-BA-M110-001-IFC.PDF \
        <url> \
        https://hardermech.quickbase.com/up/bi8vxepu8/g/r9p6/eb6/va/ANT708-1-BA-M110-001-IFC.PDF \
        </url> \
        </f> \
        <f id="276">1</f> \
        <update_id>1496326605486</update_id> \
      </record> \
    </records>'

  var xml = XmlService.parse(data);
  var items = xml.getRootElement().getChild('record').getChildren('f');
  var res
  for (var i in items) {
    if (items[i].getAttribute('id').getValue() == 276) {
      res = items[i].getValue();
    }
  }
  Logger.log(res) // 1 is retrieved.
}

该值位于f的{​​{1}}。由于有多个record,因此它会将属性f作为数组进行搜索。并检索结果id

如果我误解了你的问题,我很抱歉。