Google Apps脚本 - XML解析问题

时间:2018-06-12 17:12:31

标签: google-apps-script xml

我在Google Apps脚本中使用ZoomInfo PersonSearch API。在框架内,我在处理查询和解析时使用UrlFetchApp和XmlService。

var response = UrlFetchApp.fetch(query);
var xml = response.getContentText();
var document = XmlService.parse(xml);

当我尝试解析响应时,我被告知没有DTD,但是header和root元素如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<personSearchResponse xmlns="http://partnerapi.zoominfo.com/partnerapistatic/xsd/V4">

如上所示,根元素包含解析文件所需的XSD。为什么XmlService不能识别此声明?

1 个答案:

答案 0 :(得分:0)

如果XML响应包含namespace,则需要在方法中指定其值。我看到你的示例有命名空间:http://partnerapi.zoominfo.com/partnerapistatic/xsd/V4而不是getChild(name),你需要使用方法:getChild(name, namespace)

var response = UrlFetchApp.fetch(query);
var xml = response.getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var namespace = XmlService.getNamespace('http://partnerapi.zoominfo.com/partnerapistatic/xsd/V4');
var someChild = root.getChild('ReplaceWithChildName', namespace);