Class XmlService

XmlService

이 서비스를 사용하면 스크립트가 XML 문서를 파싱하고, 탐색하고, 프로그래매틱 방식으로 만들 수 있습니다.

// Log the title and labels for the first page of blog posts on the
// Google Workspace Developer blog.
function parseXml() {
  const url = 'https://gsuite-developers.googleblog.com/atom.xml';
  const xml = UrlFetchApp.fetch(url).getContentText();
  const document = XmlService.parse(xml);
  const root = document.getRootElement();
  const atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');

  const entries = root.getChildren('entry', atom);
  for (let i = 0; i < entries.length; i++) {
    const title = entries[i].getChild('title', atom).getText();
    const categoryElements = entries[i].getChildren('category', atom);
    const labels = [];
    for (let j = 0; j < categoryElements.length; j++) {
      labels.push(categoryElements[j].getAttribute('term').getValue());
    }
    Logger.log('%s (%s)', title, labels.join(', '));
  }
}

// Create and log an XML representation of the threads in your Gmail inbox.
function createXml() {
  const root = XmlService.createElement('threads');
  const threads = GmailApp.getInboxThreads();
  for (let i = 0; i < threads.length; i++) {
    const child =
        XmlService.createElement('thread')
            .setAttribute('messageCount', threads[i].getMessageCount())
            .setAttribute('isUnread', threads[i].isUnread())
            .setText(threads[i].getFirstMessageSubject());
    root.addContent(child);
  }
  const document = XmlService.createDocument(root);
  const xml = XmlService.getPrettyFormat().format(document);
  Logger.log(xml);
}

속성

속성유형설명
ContentTypesContentTypeXML 콘텐츠 노드 유형을 나타내는 열거형입니다.

메서드

메서드반환 유형간략한 설명
createCdata(text)Cdata지정된 값으로 연결되지 않은 CDATASection 노드를 만듭니다.
createComment(text)Comment지정된 값으로 연결되지 않은 Comment 노드를 만듭니다.
createDocType(elementName)DocType지정된 이름으로 루트 Element 노드의 연결되지 않은 DocumentType 노드를 만듭니다.
createDocType(elementName, systemId)DocType지정된 이름과 외부 하위 집합 데이터의 지정된 시스템 ID를 사용하여 루트 Element 노드의 연결되지 않은 DocumentType 노드를 만듭니다.
createDocType(elementName, publicId, systemId)DocType지정된 이름과 외부 하위 집합 데이터의 지정된 공개 ID 및 시스템 ID를 사용하여 루트 Element 노드의 연결되지 않은 DocumentType 노드를 만듭니다.
createDocument()Document빈 XML 문서를 만듭니다.
createDocument(rootElement)Document지정된 루트 Element 노드로 XML 문서를 만듭니다.
createElement(name)Element지정된 로컬 이름과 네임스페이스가 없는 연결되지 않은 Element 노드를 만듭니다.
createElement(name, namespace)Element지정된 로컬 이름과 네임스페이스로 연결되지 않은 Element 노드를 만듭니다.
createText(text)Text지정된 값으로 연결되지 않은 Text 노드를 만듭니다.
getCompactFormat()Format간결한 XML 문서를 출력하기 위한 Format 객체를 만듭니다.
getNamespace(uri)Namespace지정된 URI로 Namespace를 만듭니다.
getNamespace(prefix, uri)Namespace지정된 접두사와 URI로 Namespace를 만듭니다.
getNoNamespace()Namespace실제 네임스페이스가 없음을 나타내는 Namespace를 만듭니다.
getPrettyFormat()Format사람이 읽을 수 있는 XML 문서를 출력하기 위한 Format 객체를 만듭니다.
getRawFormat()Format원시 XML 문서를 출력하기 위한 Format 객체를 만듭니다.
getXmlNamespace()Namespace표준 xml 접두사로 Namespace을 만듭니다.
parse(xml)DocumentXML을 검사하지 않고 지정된 XML에서 Document를 만듭니다.

자세한 문서

createCdata(text)

지정된 값으로 연결되지 않은 CDATASection 노드를 만듭니다.

매개변수

이름유형설명
textString설정할 값입니다.

리턴

Cdata - 새로 생성된 CDATASection 노드입니다.


createComment(text)

지정된 값으로 연결되지 않은 Comment 노드를 만듭니다.

매개변수

이름유형설명
textString설정할 값입니다.

리턴

Comment - 새로 생성된 Comment 노드입니다.


createDocType(elementName)

지정된 이름으로 루트 Element 노드의 연결되지 않은 DocumentType 노드를 만듭니다.

매개변수

이름유형설명
elementNameStringDocType 선언에 지정할 루트 Element 노드의 이름입니다.

리턴

DocType - 새로 생성된 DocumentType 노드입니다.


createDocType(elementName, systemId)

지정된 이름과 외부 하위 집합 데이터의 지정된 시스템 ID를 사용하여 루트 Element 노드의 연결되지 않은 DocumentType 노드를 만듭니다.

매개변수

이름유형설명
elementNameStringDocType 선언에 지정할 루트 Element 노드의 이름입니다.
systemIdString설정할 외부 하위 집합 데이터의 시스템 ID입니다.

리턴

DocType - 새로 생성된 DocumentType 노드입니다.


createDocType(elementName, publicId, systemId)

지정된 이름과 외부 하위 집합 데이터의 지정된 공개 ID 및 시스템 ID를 사용하여 루트 Element 노드의 연결되지 않은 DocumentType 노드를 만듭니다.

매개변수

이름유형설명
elementNameStringDocType 선언에 지정할 루트 Element 노드의 이름입니다.
publicIdString설정할 외부 하위 집합 데이터의 공개 ID입니다.
systemIdString설정할 외부 하위 집합 데이터의 시스템 ID입니다.

리턴

DocType - 새로 생성된 DocumentType 노드입니다.


createDocument()

빈 XML 문서를 만듭니다.

리턴

Document - 새로 생성된 문서입니다.


createDocument(rootElement)

지정된 루트 Element 노드로 XML 문서를 만듭니다.

매개변수

이름유형설명
rootElementElement설정할 루트 Element 노드입니다.

리턴

Document - 새로 생성된 문서입니다.


createElement(name)

지정된 로컬 이름과 네임스페이스가 없는 연결되지 않은 Element 노드를 만듭니다.

매개변수

이름유형설명
nameString설정할 현지 이름입니다.

리턴

Element - 새로 생성된 Element 노드입니다.


createElement(name, namespace)

지정된 로컬 이름과 네임스페이스로 연결되지 않은 Element 노드를 만듭니다.

매개변수

이름유형설명
nameString설정할 현지 이름입니다.
namespaceNamespace설정할 네임스페이스입니다.

리턴

Element - 새로 생성된 Element 노드입니다.


createText(text)

지정된 값으로 연결되지 않은 Text 노드를 만듭니다.

매개변수

이름유형설명
textString설정할 값입니다.

리턴

Text - 새로 생성된 Text 노드입니다.


getCompactFormat()

간결한 XML 문서를 출력하기 위한 Format 객체를 만듭니다. 포맷터는 기본적으로 UTF-8 인코딩, 들여쓰기 없음, 추가 줄바꿈 없음으로 설정되지만 XML 선언과 인코딩은 포함됩니다.

// Log an XML document in compact form.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getCompactFormat().format(document);
Logger.log(output);

리턴

Format - 새로 생성된 포맷터입니다.


getNamespace(uri)

지정된 URI로 Namespace를 만듭니다.

매개변수

이름유형설명
uriString네임스페이스의 URI입니다.

리턴

Namespace - 새로 생성된 네임스페이스입니다.


getNamespace(prefix, uri)

지정된 접두사와 URI로 Namespace를 만듭니다.

매개변수

이름유형설명
prefixString네임스페이스의 접두사입니다.
uriString네임스페이스의 URI입니다.

리턴

Namespace - 새로 생성된 네임스페이스입니다.


getNoNamespace()

실제 네임스페이스가 없음을 나타내는 Namespace를 만듭니다.

리턴

Namespace - 새로 생성된 네임스페이스입니다.


getPrettyFormat()

사람이 읽을 수 있는 XML 문서를 출력하기 위한 Format 객체를 만듭니다. 포맷터는 기본적으로 UTF-8 인코딩, 2칸 들여쓰기, 모든 노드 뒤에 \r\n 줄 구분 기호를 사용하며 XML 선언과 인코딩을 포함합니다.

// Log an XML document in human-readable form.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getPrettyFormat().format(document);
Logger.log(output);

리턴

Format - 새로 생성된 포맷터입니다.


getRawFormat()

원시 XML 문서를 출력하기 위한 Format 객체를 만듭니다. 포맷터는 기본적으로 UTF-8 인코딩을 사용하고, 들여쓰기가 없으며, XML 문서 자체에 제공된 것 외에는 줄바꿈이 없고, XML 선언과 인코딩이 포함됩니다.

// Log an XML document in raw form.
const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const document = XmlService.parse(xml);
const output = XmlService.getRawFormat().format(document);
Logger.log(output);

리턴

Format - 새로 생성된 포맷터입니다.


getXmlNamespace()

표준 xml 접두사로 Namespace을 만듭니다.

리턴

Namespace - 새로 생성된 네임스페이스입니다.


parse(xml)

XML을 검사하지 않고 지정된 XML에서 Document를 만듭니다.

const xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
const doc = XmlService.parse(xml);

매개변수

이름유형설명
xmlString파싱할 XML입니다.

리턴

Document - 새로 생성된 문서입니다.