// Log an XML document with specified formatting options.constxml='<root><a><b>Text!</b><b>More text!</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getCompactFormat().setLineSeparator('\n').setEncoding('UTF-8').setIndent(' ').format(document);Logger.log(output);
设置格式化程序应使用的字符编码。encoding 参数必须是接受的 XML 编码,例如 ISO-8859-1、US-ASCII、UTF-8 或 UTF-16。
// Log an XML document with encoding that does not support certain special// characters.constxml='<root><a><b>ಠ‿ಠ</b><b>ಠ‿ಠ</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getRawFormat().setEncoding('ISO-8859-1').format(document);Logger.log(output);
// Log an XML document with each child node indented four spaces.constxml='<root><a><b>Text!</b><b>More text!</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getCompactFormat().setIndent(' ').format(document);Logger.log(output);
// Log an XML document with several spaces and a pipe character in place of line// breaks.constxml='<root><a><b>Text!</b><b>More text!</b></a></root>';constdocument=XmlService.parse(xml);constoutput=XmlService.getRawFormat().setLineSeparator(' | ').format(document);Logger.log(output);
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-07-26。"],[[["\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,["Format\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\nMethods\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`format(document)` \nOutputs the given [Document](/apps-script/reference/xml-service/document) as a formatted string.\n\nParameters\n\n| Name | Type | Description |\n|------------|---------------------------------------------------------|------------------------|\n| `document` | [Document](/apps-script/reference/xml-service/document) | the document to format |\n\nReturn\n\n\n`String` --- the formatted document\n\n*** ** * ** ***\n\n`format(element)` \nOutputs the given [Element](/apps-script/reference/xml-service/element) node as a formatted string.\n\nParameters\n\n| Name | Type | Description |\n|-----------|-------------------------------------------------------|-----------------------|\n| `element` | [Element](/apps-script/reference/xml-service/element) | the element to format |\n\nReturn\n\n\n`String` --- the formatted element\n\n*** ** * ** ***\n\n`set``Encoding(encoding)` \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\nParameters\n\n| Name | Type | Description |\n|------------|----------|---------------------|\n| `encoding` | `String` | the encoding to use |\n\nReturn\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n`set``Indent(indent)` \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\nParameters\n\n| Name | Type | Description |\n|----------|----------|-------------------|\n| `indent` | `String` | the indent to use |\n\nReturn\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n`set``Line``Separator(separator)` \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\nParameters\n\n| Name | Type | Description |\n|-------------|----------|----------------------|\n| `separator` | `String` | the separator to use |\n\nReturn\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n`set``Omit``Declaration(omitDeclaration)` \nSets whether the formatter should omit the XML declaration, such as `\u003c?xml version=\"1.0\"\nencoding=\"UTF-8\"?\u003e`.\n\nParameters\n\n| Name | Type | Description |\n|---------------------|-----------|-----------------------------------------------------------|\n| `omit``Declaration` | `Boolean` | `true` to omit the XML declaration; `false` to include it |\n\nReturn\n\n\n[Format](#) --- the formatter, for chaining\n\n*** ** * ** ***\n\n`set``Omit``Encoding(omitEncoding)` \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\nParameters\n\n| Name | Type | Description |\n|------------------|-----------|---------------------------------------------------------------------------|\n| `omit``Encoding` | `Boolean` | `true` to omit the encoding in the XML declaration; `false` to include it |\n\nReturn\n\n\n[Format](#) --- the formatter, for chaining"]]