Class Format
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
格式
用于输出 XML 文档的格式设置程序,其中包含三种可进一步自定义的预定义格式。
// 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);
详细文档
setEncoding(encoding)
设置格式化程序应使用的字符编码。encoding
参数必须是接受的 XML 编码,例如 ISO-8859-1
、US-ASCII
、UTF-8
或 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);
参数
名称 | 类型 | 说明 |
encoding | String | 要使用的编码 |
返回
Format
- 用于链式调用的格式设置工具
setIndent(indent)
设置用于相对于父节点缩进子节点的字符串。设置 null
以外的缩进会导致格式设置程序在每个节点后插入换行符。
// 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);
参数
名称 | 类型 | 说明 |
indent | String | 要使用的缩进 |
返回
Format
- 用于链式调用的格式设置工具
setLineSeparator(separator)
设置在格式化程序通常会插入换行符时要插入的字符串。这三种预定义的格式化程序在插入换行符时具有不同的条件。默认行分隔符为 \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);
参数
名称 | 类型 | 说明 |
separator | String | 要使用的分隔符 |
返回
Format
- 用于链式调用的格式设置工具
setOmitDeclaration(omitDeclaration)
设置格式化程序是否应省略 XML 声明,例如 <?xml version="1.0"
encoding="UTF-8"?>
。
参数
名称 | 类型 | 说明 |
omitDeclaration | Boolean | true 表示省略 XML 声明;false 表示包含该声明 |
返回
Format
- 用于链式调用的格式设置工具
setOmitEncoding(omitEncoding)
设置格式化程序是否应忽略 XML 声明中的编码,例如 <?xml version="1.0" encoding="UTF-8"?>
中的编码字段。
参数
名称 | 类型 | 说明 |
omitEncoding | Boolean | true 表示在 XML 声明中省略编码;false 表示包含编码 |
返回
Format
- 用于链式调用的格式设置工具
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[null,null,["最后更新时间 (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,["# 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"]]