Class XmlService

XmlService

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

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

  var entries = root.getChildren('entry', atom);
  for (var i = 0; i < entries.length; i++) {
    var title = entries[i].getChild('title', atom).getText();
    var categoryElements = entries[i].getChildren('category', atom);
    var labels = [];
    for (var 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() {
  var root = XmlService.createElement('threads');
  var threads = GmailApp.getInboxThreads();
  for (var i = 0; i < threads.length; i++) {
    var child = XmlService.createElement('thread')
        .setAttribute('messageCount', threads[i].getMessageCount())
        .setAttribute('isUnread', threads[i].isUnread())
        .setText(threads[i].getFirstMessageSubject());
    root.addContent(child);
  }
  var document = XmlService.createDocument(root);
  var 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지정된 이름을 사용하여 루트 Element 노드에 대한 연결되지 않은 DocumentType 노드를 만들고 외부 하위 집합 데이터에 대해 지정된 공개 ID와 시스템 ID를 만듭니다.
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)

지정된 이름을 사용하여 루트 Element 노드에 대한 연결되지 않은 DocumentType 노드를 만들고 외부 하위 집합 데이터에 대해 지정된 공개 ID와 시스템 ID를 만듭니다.

매개변수

이름유형설명
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.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var 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.
var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>';
var document = XmlService.parse(xml);
var output = XmlService.getPrettyFormat()
    .format(document);
Logger.log(output);

리턴

Format: 새로 만든 형식 지정 도구


getRawFormat()

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

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

리턴

Format: 새로 만든 형식 지정 도구


getXmlNamespace()

표준 xml 접두사를 사용하여 Namespace를 만듭니다.

리턴

Namespace - 새로 만든 네임스페이스


parse(xml)

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

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

매개변수

이름유형설명
xmlString파싱할 XML

리턴

Document: 새로 만든 문서