我在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不能识别此声明?
答案 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);