Class Format
Stay organized with collections
Save and categorize content based on your preferences.
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.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getCompactFormat()
.setLineSeparator('\n')
.setEncoding('UTF-8')
.setIndent(' ')
.format(document);
Logger.log(output);
Detailed documentation
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.
const xml = '<root><a><b>ಠ‿ಠ</b><b>ಠ‿ಠ</b></a></root>';
const document = XmlService.parse(xml);
const 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.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const 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.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const 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
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-12-02 UTC.
[null,null,["Last updated 2024-12-02 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eXmlService\u003c/code\u003e provides a formatter to output XML documents with customizable formatting options like encoding, indentation, and line separators.\u003c/p\u003e\n"],["\u003cp\u003eThree predefined formats are available and can be accessed using \u003ccode\u003eXmlService.getPrettyFormat()\u003c/code\u003e, \u003ccode\u003eXmlService.getCompactFormat()\u003c/code\u003e, and \u003ccode\u003eXmlService.getRawFormat()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eformat()\u003c/code\u003e method outputs either a given \u003ccode\u003eDocument\u003c/code\u003e or \u003ccode\u003eElement\u003c/code\u003e node as a formatted string based on the set formatting options.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can customize the output by setting the encoding, indent, line separator, and whether to omit the XML declaration or encoding using the respective methods on the \u003ccode\u003eFormat\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eThe formatter allows for chaining methods to easily configure multiple formatting options in a single line of code.\u003c/p\u003e\n"]]],[],null,["# Class Format\n\nFormat\n\nA formatter for outputting an XML document, with three pre-defined formats that can be further\ncustomized.\n\n```javascript\n// Log an XML document with specified formatting options.\nconst xml = '\u003croot\u003e\u003ca\u003e\u003cb\u003eText!\u003c/b\u003e\u003cb\u003eMore text!\u003c/b\u003e\u003c/a\u003e\u003c/root\u003e';\nconst document = XmlService.parse(xml);\nconst output = XmlService.getCompactFormat()\n .setLineSeparator('\\n')\n .setEncoding('UTF-8')\n .setIndent(' ')\n .format(document);\nLogger.log(output);\n``` \n\n### Methods\n\n| Method | Return type | Brief description |\n|---------------------------------------------------------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|\n| [format(document)](#format(Document)) | `String` | Outputs the given [Document](/apps-script/reference/xml-service/document) as a formatted string. |\n| [format(element)](#format(Element)) | `String` | Outputs the given [Element](/apps-script/reference/xml-service/element) node as a formatted string. |\n| [setEncoding(encoding)](#setEncoding(String)) | [Format](#) | Sets the character encoding that the formatter should use. |\n| [setIndent(indent)](#setIndent(String)) | [Format](#) | Sets the string used to indent child nodes relative to their parents. |\n| [setLineSeparator(separator)](#setLineSeparator(String)) | [Format](#) | Sets the string to insert whenever the formatter would normally insert a line break. |\n| [setOmitDeclaration(omitDeclaration)](#setOmitDeclaration(Boolean)) | [Format](#) | Sets whether the formatter should omit the XML declaration, such as `\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e`. |\n| [setOmitEncoding(omitEncoding)](#setOmitEncoding(Boolean)) | [Format](#) | Sets whether the formatter should omit the encoding in the XML declaration, such as the encoding field in `\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e`. |\n\nDetailed documentation\n----------------------\n\n### `format(document)`\n\nOutputs the given [Document](/apps-script/reference/xml-service/document) as a formatted string.\n\n#### Parameters\n\n| Name | Type | Description |\n|------------|---------------------------------------------------------|------------------------|\n| `document` | [Document](/apps-script/reference/xml-service/document) | the document to format |\n\n#### Return\n\n\n`String` --- the formatted document\n\n*** ** * ** ***\n\n### `format(element)`\n\nOutputs the given [Element](/apps-script/reference/xml-service/element) node as a formatted string.\n\n#### Parameters\n\n| Name | Type | Description |\n|-----------|-------------------------------------------------------|-----------------------|\n| `element` | [Element](/apps-script/reference/xml-service/element) | the element to format |\n\n#### Return\n\n\n`String` --- the formatted element\n\n*** ** * ** ***\n\n### `set``Encoding(encoding)`\n\nSets the character encoding that the formatter should use. The `encoding` argument must\nbe an accepted XML encoding like `ISO-8859-1`, `US-ASCII`, `UTF-8`, or `UTF-16`.\n\n```javascript\n// Log an XML document with encoding that does not support certain special\n// characters.\nconst xml = '\u003croot\u003e\u003ca\u003e\u003cb\u003eಠ‿ಠ\u003c/b\u003e\u003cb\u003eಠ‿ಠ\u003c/b\u003e\u003c/a\u003e\u003c/root\u003e';\nconst document = XmlService.parse(xml);\nconst output =\n XmlService.getRawFormat().setEncoding('ISO-8859-1').format(document);\nLogger.log(output);\n```\n\n#### Parameters\n\n| Name | Type | Description |\n|------------|----------|---------------------|\n| `encoding` | `String` | the encoding to use |\n\n#### Return\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n### `set``Indent(indent)`\n\nSets the string used to indent child nodes relative to their parents. Setting an indent other\nthan `null` will cause the formatter to insert a line break after every node.\n\n```javascript\n// Log an XML document with each child node indented four spaces.\nconst xml = '\u003croot\u003e\u003ca\u003e\u003cb\u003eText!\u003c/b\u003e\u003cb\u003eMore text!\u003c/b\u003e\u003c/a\u003e\u003c/root\u003e';\nconst document = XmlService.parse(xml);\nconst output = XmlService.getCompactFormat().setIndent(' ').format(document);\nLogger.log(output);\n```\n\n#### Parameters\n\n| Name | Type | Description |\n|----------|----------|-------------------|\n| `indent` | `String` | the indent to use |\n\n#### Return\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n### `set``Line``Separator(separator)`\n\nSets the string to insert whenever the formatter would normally insert a line break. The three\npre-defined formatters have different conditions under which they insert a line break. The\ndefault line separator is `\\r\\n`.\n\n```javascript\n// Log an XML document with several spaces and a pipe character in place of line\n// breaks.\nconst xml = '\u003croot\u003e\u003ca\u003e\u003cb\u003eText!\u003c/b\u003e\u003cb\u003eMore text!\u003c/b\u003e\u003c/a\u003e\u003c/root\u003e';\nconst document = XmlService.parse(xml);\nconst output =\n XmlService.getRawFormat().setLineSeparator(' | ').format(document);\nLogger.log(output);\n```\n\n#### Parameters\n\n| Name | Type | Description |\n|-------------|----------|----------------------|\n| `separator` | `String` | the separator to use |\n\n#### Return\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n### `set``Omit``Declaration(omitDeclaration)`\n\nSets whether the formatter should omit the XML declaration, such as `\u003c?xml version=\"1.0\"\nencoding=\"UTF-8\"?\u003e`.\n\n#### Parameters\n\n| Name | Type | Description |\n|---------------------|-----------|-----------------------------------------------------------|\n| `omit``Declaration` | `Boolean` | `true` to omit the XML declaration; `false` to include it |\n\n#### Return\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n### `set``Omit``Encoding(omitEncoding)`\n\nSets whether the formatter should omit the encoding in the XML declaration, such as the\nencoding field in `\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e`.\n\n#### Parameters\n\n| Name | Type | Description |\n|------------------|-----------|---------------------------------------------------------------------------|\n| `omit``Encoding` | `Boolean` | `true` to omit the encoding in the XML declaration; `false` to include it |\n\n#### Return\n\n\n[Format](#) --- the formatter, for chaining"]]