user3378386
user3378386

Reputation: 21

GoogleScript XmlService method setAttribute for adding "xml:lang"

How I can generate such XML tag in Googlescript via XmlService?

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

I have used different variants setAttribute but nothing is works.

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" />

Upvotes: 2

Views: 379

Answers (1)

Gawcio
Gawcio

Reputation: 1175

You need to use "xml:" namespace as defined here

This is available in Google Apps Script by calling:

XmlService.getXmlNamespace()

So, you can achieve what you want with the following code:

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

Upvotes: 1

Related Questions