Class Format

Format

A formatter for outputting an XML document, with three pre-defined formats that can be further customized.

// Log an XML document with specified formatting options.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getCompactFormat()
    .setLineSeparator('\n')
    .setEncoding('UTF-8')
    .setIndent('   ')
    .format(document);
Logger.log(output);

Methods

Method Return type Brief description
String Outputs the given Document as a formatted string.
String Outputs the given Element node as a formatted string.
Format Sets the character encoding that the formatter should use.
Format Sets the string used to indent child nodes relative to their parents.
Format Sets the string to insert whenever the formatter would normally insert a line break.
Format Sets whether the formatter should omit the XML declaration, such as <?xml version="1.0" encoding="UTF-8"?> .
Format Sets whether the formatter should omit the encoding in the XML declaration, such as the encoding field in <?xml version="1.0" encoding="UTF-8"?> .

Detailed documentation

format(document)

Outputs the given Document as a formatted string.

Parameters

Name Type Description
document
Document the document to format

Return

String — the formatted document


format(element)

Outputs the given Element node as a formatted string.

Parameters

Name Type Description
element
Element the element to format

Return

String — the formatted element


setEncoding(encoding)

Sets the character encoding that the formatter should use. The encoding argument must be an accepted XML encoding like ISO-8859-1 , US-ASCII , UTF-8 , or UTF-16 .

// Log an XML document with encoding that does not support certain special characters.
var xml = '<root><a><b>ಠ‿ಠ</b><b>ಠ‿ಠ</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getRawFormat()
    .setEncoding('ISO-8859-1')
    .format(document);
Logger.log(output);

Parameters

Name Type Description
encoding
String the encoding to use

Return

Format — the formatter, for chaining


setIndent(indent)

Sets the string used to indent child nodes relative to their parents. Setting an indent other than null will cause the formatter to insert a line break after every node.

// Log an XML document with each child node indented four spaces.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getCompactFormat()
    .setIndent('    ')
    .format(document);
Logger.log(output);

Parameters

Name Type Description
indent
String the indent to use

Return

Format — the formatter, for chaining


setLineSeparator(separator)

Sets the string to insert whenever the formatter would normally insert a line break. The three pre-defined formatters have different conditions under which they insert a line break. The default line separator is \r\n .

// Log an XML document with several spaces and a pipe character in place of line breaks.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getRawFormat()
    .setLineSeparator(' | ')
    .format(document);
Logger.log(output);

Parameters

Name Type Description
separator
String the separator to use

Return

Format — the formatter, for chaining


setOmitDeclaration(omitDeclaration)

Sets whether the formatter should omit the XML declaration, such as <?xml version="1.0" encoding="UTF-8"?> .

Parameters

Name Type Description
omitDeclaration
Boolean true to omit the XML declaration; false to include it

Return

Format — the formatter, for chaining


setOmitEncoding(omitEncoding)

Sets whether the formatter should omit the encoding in the XML declaration, such as the encoding field in <?xml version="1.0" encoding="UTF-8"?> .

Parameters

Name Type Description
omitEncoding
Boolean true to omit the encoding in the XML declaration; false to include it

Return

Format — the formatter, for chaining