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지정된 이름으로 루트 Element 노드의 연결되지 않은 DocumentType 노드와 외부 하위 집합 데이터의 지정된 시스템 ID를 만듭니다.
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)

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

매개변수

이름유형설명
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: 새로 생성된 문서