Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XmlService addNamespace方法正在向子元素添加空白XML命名空间_Xml_Google Apps Script_Xml Namespaces - Fatal编程技术网

XmlService addNamespace方法正在向子元素添加空白XML命名空间

XmlService addNamespace方法正在向子元素添加空白XML命名空间,xml,google-apps-script,xml-namespaces,Xml,Google Apps Script,Xml Namespaces,我试图只向根元素添加名称空间,但这样做似乎会向所有直接子元素添加xmlns=“”。这导致Google AdWords API返回错误 这是我的密码: var adwordsNameSpace = XmlService.getNamespace('https://adwords.google.com/api/adwords/cm/v201809'); var root = XmlService.createElement('reportDefinition') .setNamespace

我试图只向根元素添加名称空间,但这样做似乎会向所有直接子元素添加
xmlns=“”
。这导致Google AdWords API返回错误

这是我的密码:

var adwordsNameSpace = XmlService.getNamespace('https://adwords.google.com/api/adwords/cm/v201809');

var root = XmlService.createElement('reportDefinition')
    .setNamespace(adwordsNameSpace)

var selector = XmlService.createElement('selector')

var fields = ['Clicks', 'Ctr', 'Cost'];

fields.forEach(function (field) {
  var xml = XmlService.createElement('fields').setText(field);
  selector.addContent(xml)
})

root.addContent(selector)

var options = [
  ['reportName', 'Custom Report'],
  ['reportType', 'ACCOUNT_PERFORMANCE_REPORT'],
  ['dateRangeType', 'LAST_7_DAYS'],
  ['downloadFormat', 'XML']
]

options.forEach(function(option) {
  root.addContent(XmlService.createElement(option[0]).setText(option[1]))
})

var document = XmlService.createDocument(root);
var xml = XmlService.getPrettyFormat().format(document);
Logger.log(xml);
这是最终的结果:

<?xml version="1.0" encoding="UTF-8"?>
<reportDefinition xmlns="https://adwords.google.com/api/adwords/cm/v201809">
  <selector xmlns="">
    <fields>Clicks</fields>
    <fields>Ctr</fields>
    <fields>Cost</fields>
  </selector>
  <reportName xmlns="">Custom Report</reportName>
  <reportType xmlns="">ACCOUNT_PERFORMANCE_REPORT</reportType>
  <dateRangeType xmlns="">LAST_7_DAYS</dateRangeType>
  <downloadFormat xmlns="">XML</downloadFormat>
</reportDefinition>

咔哒声
中心
成本
自定义报告
客户绩效报告
最后7天
XML

如何防止或轻松删除这些空白属性?

一旦在某个父元素上声明了名称空间,就必须在后续元素上继续使用该名称空间
XmlService.createElement
接受命名空间的第二个参数,因此不必调用单独的函数来设置命名空间

函数XMLTest(){
var adwordsNameSpace=XmlService.getNamespace(“https://adwords.google.com/api/adwords/cm/v201809");
var root=XmlService.createElement('reportDefinition',adwordsNameSpace);
var selector=XmlService.createElement('selector',adwordsNameSpace);
['Clicks','Ctr','Cost'].forEach(函数(字段){
var xml=XmlService.createElement('fields',adwordsNameSpace).setText(field);
selector.addContent(xml)
});
root.addContent(选择器);
变量选项={
reportName:“自定义报告”,
报告类型:“账户绩效报告”,
dateRangeType:“最近7天”,
下载格式:“XML”
};
for(选项中的变量标记名){
root.addContent(XmlService.createElement(标记名,adwordsNameSpace.setText(选项[tagName]))
}
var document=XmlService.createDocument(根);
var xml=XmlService.getPrettyFormat().format(文档);
Logger.log(xml);
}
/*记录器输出:
咔哒声
中心
成本
自定义报告
客户绩效报告
最后7天
XML
*/

一旦在某个父元素上声明了名称空间,就必须在后续元素上继续使用该名称空间
XmlService.createElement
接受命名空间的第二个参数,因此不必调用单独的函数来设置命名空间

函数XMLTest(){
var adwordsNameSpace=XmlService.getNamespace(“https://adwords.google.com/api/adwords/cm/v201809");
var root=XmlService.createElement('reportDefinition',adwordsNameSpace);
var selector=XmlService.createElement('selector',adwordsNameSpace);
['Clicks','Ctr','Cost'].forEach(函数(字段){
var xml=XmlService.createElement('fields',adwordsNameSpace).setText(field);
selector.addContent(xml)
});
root.addContent(选择器);
变量选项={
reportName:“自定义报告”,
报告类型:“账户绩效报告”,
dateRangeType:“最近7天”,
下载格式:“XML”
};
for(选项中的变量标记名){
root.addContent(XmlService.createElement(标记名,adwordsNameSpace.setText(选项[tagName]))
}
var document=XmlService.createDocument(根);
var xml=XmlService.getPrettyFormat().format(文档);
Logger.log(xml);
}
/*记录器输出:
咔哒声
中心
成本
自定义报告
客户绩效报告
最后7天
XML
*/