用于添加“xml:lang”的GoogleScript XmlService方法setAttribute

时间:2014-03-04 09:57:05

标签: xml xml-namespaces

如何通过XmlService在Googlescript中生成这样的XML标记?

<display-name xml:lang="x-default">Adam</display-name>

我使用了不同的变体setAttribute,但没有任何效果。

XmlService.createElement('display-name').setAttribute('lang', 'x-default'); 
// prefix `xml:` has not added

XmlService.createElement('display-name').setAttribute('lang', 'x-default', XmlService.getNamespace('someurl')); 
// fatal error: We're sorry, a server error occurred

XmlService.createElement('display-name').setAttribute('lang', 'x-default', XmlService.getNamespace('xml', 'someurl')); 
// fatal error: Invalid argument

// but in case fake namespace - OK
XmlService.createElement('display-name').setAttribute('lang', 'x-default', XmlService.getNamespace('qqq', 'someurl')); 
// <display-name xmlns:qqq="http://example.com" qqq:lang="x-default" />

1 个答案:

答案 0 :(得分:1)

您需要使用定义为here

的“xml:”命名空间

这可以通过致电:

在Google Apps脚本中找到
XmlService.getXmlNamespace()

因此,您可以使用以下代码实现您想要的目标:

XmlService.createElement('display-name')
      .setAttribute('lang', 'x-default', XmlService.getXmlNamespace())
      .setText('Adam');