XML Service

XML 서비스

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

// Log the title and labels for the first page of blog posts on
// Google's The Keyword blog.
function parseXml() {
  let url = 'https://blog.google/rss/';
  let xml = UrlFetchApp.fetch(url).getContentText();
  let document = XmlService.parse(xml);
  let root = document.getRootElement();

  let channel = root.getChild('channel');
  let items = channel.getChildren('item');
  items.forEach(item => {
    let title = item.getChild('title').getText();
    let categories = item.getChildren('category');
    let labels = categories.map(category => category.getText());
    console.log('%s (%s)', title, labels.join(', '));
  });
}

// Create and log an XML representation of first 10 threads in your Gmail inbox.
function createXml() {
  let root = XmlService.createElement('threads');
  let threads = GmailApp.getInboxThreads()
  threads = threads.slice(0,10); // Just the first 10
  threads.forEach(thread => {
    let child = XmlService.createElement('thread')
        .setAttribute('messageCount', thread.getMessageCount())
        .setAttribute('isUnread', thread.isUnread())
        .setText(thread.getFirstMessageSubject());
    root.addContent(child);
  });
  let document = XmlService.createDocument(root);
  let xml = XmlService.getPrettyFormat().format(document);
  console.log(xml);
}

클래스

이름간략한 설명
AttributeXML 속성의 표현입니다.
CdataXML CDATASection 노드의 표현입니다.
CommentXML Comment 노드의 표현입니다.
Content일반 XML 노드의 표현입니다.
ContentTypeXML 콘텐츠 노드의 유형을 나타내는 열거형입니다.
DocTypeXML DocumentType 노드의 표현입니다.
DocumentXML 문서의 표현입니다.
ElementXML Element 노드의 표현입니다.
EntityRefXML EntityReference 노드의 표현입니다.
FormatXML 문서를 출력하기 위한 형식 지정 도구로, 추가로 맞춤설정할 수 있는 사전 정의된 세 가지 형식이 있습니다.
NamespaceXML 네임스페이스의 표현입니다.
ProcessingInstructionXML ProcessingInstruction 노드의 표현입니다.
TextXML Text 노드의 표현입니다.
XmlService이 서비스를 사용하면 스크립트가 XML 문서를 파싱, 탐색, 프로그래매틱 방식으로 만들 수 있습니다.

Attribute

메서드

메서드반환 유형간략한 설명
getName()String속성의 로컬 이름을 가져옵니다.
getNamespace()Namespace속성의 네임스페이스를 가져옵니다.
getValue()String속성의 값을 가져옵니다.
setName(name)Attribute속성의 로컬 이름을 설정합니다.
setNamespace(namespace)Attribute속성의 네임스페이스를 설정합니다.
setValue(value)Attribute속성의 값을 설정합니다.

Cdata

메서드

메서드반환 유형간략한 설명
append(text)Text노드에 이미 있는 콘텐츠에 지정된 텍스트를 추가합니다.
detach()Content노드를 상위 Element 노드에서 분리합니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getText()StringText 노드의 텍스트 값을 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.
setText(text)TextText 노드의 텍스트 값을 설정합니다.

Comment

메서드

메서드반환 유형간략한 설명
detach()Content노드를 상위 Element 노드에서 분리합니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getText()StringComment 노드의 텍스트 값을 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.
setText(text)CommentComment 노드의 텍스트 값을 설정합니다.

Content

메서드

메서드반환 유형간략한 설명
asCdata()Cdata자동 완성을 위해 노드를 CDATASection 노드로 전송합니다.
asComment()Comment자동 완성을 위해 노드를 Comment 노드로 전송합니다.
asDocType()DocType자동 완성을 위해 노드를 DocumentType 노드로 전송합니다.
asElement()Element자동 완성을 위해 노드를 Element 노드로 전송합니다.
asEntityRef()EntityRef자동 완성을 위해 노드를 EntityReference 노드로 전송합니다.
asProcessingInstruction()ProcessingInstruction자동 완성을 위해 노드를 ProcessingInstruction 노드로 전송합니다.
asText()Text자동 완성을 위해 노드를 Text 노드로 전송합니다.
detach()Content노드를 상위 Element 노드에서 분리합니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getType()ContentType노드의 콘텐츠 유형을 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.

ContentType

속성

속성유형설명
CDATAEnumXML CDATASection 노드
COMMENTEnumXML Comment 노드
DOCTYPEEnumXML DocumentType 노드
ELEMENTEnumXML Element 노드
ENTITYREFEnumXML EntityReference 노드
PROCESSINGINSTRUCTIONEnumXML ProcessingInstruction 노드
TEXTEnumXML Text 노드

DocType

메서드

메서드반환 유형간략한 설명
detach()Content노드를 상위 Element 노드에서 분리합니다.
getElementName()StringDocType 선언에 지정된 루트 Element 노드의 이름을 가져옵니다.
getInternalSubset()StringDocumentType 노드의 내부 하위 집합 데이터를 가져옵니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getPublicId()StringDocumentType 노드의 외부 하위 집합 데이터의 공개 ID를 가져옵니다.
getSystemId()StringDocumentType 노드의 외부 하위 집합 데이터의 시스템 ID를 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.
setElementName(name)DocTypeDocType 선언에서 지정할 루트 Element 노드의 이름을 설정합니다.
setInternalSubset(data)DocTypeDocumentType 노드의 내부 하위 집합 데이터를 설정합니다.
setPublicId(id)DocTypeDocumentType 노드의 외부 하위 집합 데이터의 공개 ID를 설정합니다.
setSystemId(id)DocTypeDocumentType 노드의 외부 하위 집합 데이터의 시스템 ID를 설정합니다.

Document

메서드

메서드반환 유형간략한 설명
addContent(content)Document지정된 노드를 문서 끝에 추가합니다.
addContent(index, content)Document문서의 즉각적인 하위 요소인 모든 노드 중에서 지정된 색인에 지정된 노드를 삽입합니다.
cloneContent()Content[]문서의 즉시 하위인 모든 노드의 연결되지 않은 사본을 만듭니다.
detachRootElement()Element문서의 루트 Element 노드를 분리하고 반환합니다.
getAllContent()Content[]문서의 즉시 하위 요소인 모든 노드를 가져옵니다.
getContent(index)Content문서의 즉각적인 하위 요소인 모든 노드 중에서 지정된 색인의 노드를 가져옵니다.
getContentSize()Integer문서의 바로 아래 하위 노드인 노드 수를 가져옵니다.
getDescendants()Content[]문서의 직접 또는 간접 하위 요소인 모든 노드를 문서에 표시되는 순서대로 가져옵니다.
getDocType()DocType문서의 DocType 선언을 가져옵니다.
getRootElement()Element문서의 루트 Element 노드를 가져옵니다.
hasRootElement()Boolean문서에 루트 Element 노드가 있는지 확인합니다.
removeContent()Content[]문서의 즉시 하위인 모든 노드를 삭제합니다.
removeContent(content)Boolean노드가 문서의 바로 아래 하위 요소인 경우 지정된 노드를 삭제합니다.
removeContent(index)Content문서의 바로 아래 하위 요소인 모든 노드 중에서 지정된 색인의 노드를 삭제합니다.
setDocType(docType)Document문서의 DocType 선언을 설정합니다.
setRootElement(element)Document문서의 루트 Element 노드를 설정합니다.

Element

메서드

메서드반환 유형간략한 설명
addContent(content)Element지정된 노드를 Element 노드의 마지막 하위 요소로 추가합니다.
addContent(index, content)ElementElement 노드의 즉시 하위인 모든 노드 중 지정된 색인에 지정된 노드를 삽입합니다.
cloneContent()Content[]{@code Element} 노드의 직속 하위 노드인 모든 노드의 연결되지 않은 사본을 만듭니다.
detach()Content노드를 상위 Element 노드에서 분리합니다.
getAllContent()Content[]{@code Element} 노드의 직계 하위 노드인 모든 노드를 가져옵니다.
getAttribute(name)Attribute지정된 이름을 가진 이 Element 노드의 속성을 가져옵니다(네임스페이스 없음).
getAttribute(name, namespace)Attribute지정된 이름과 네임스페이스를 사용하여 이 Element 노드의 속성을 가져옵니다.
getAttributes()Attribute[]Element 노드의 모든 속성을 문서에 표시되는 순서대로 가져옵니다.
getChild(name)Element지정된 이름을 가진 첫 번째 Element 노드와 이 Element 노드의 즉시 하위 요소인 네임스페이스가 없는 Element 노드를 가져옵니다.
getChild(name, namespace)ElementElement 노드의 즉시 하위 요소인 지정된 이름과 네임스페이스를 가진 첫 번째 Element 노드를 가져옵니다.
getChildText(name)String노드가 Element 노드의 즉시 하위 노드인 경우 지정된 이름과 네임스페이스가 없는 노드의 텍스트 값을 가져옵니다.
getChildText(name, namespace)String노드가 Element 노드의 즉시 하위 노드인 경우 지정된 이름과 네임스페이스가 있는 노드의 텍스트 값을 가져옵니다.
getChildren()Element[]Element 노드의 즉시 하위 요소인 모든 Element 노드를 문서에 표시되는 순서대로 가져옵니다.
getChildren(name)Element[]Element 노드의 즉시 하위 요소인 네임스페이스가 없고 지정된 이름을 가진 모든 Element 노드를 문서에 표시되는 순서대로 가져옵니다.
getChildren(name, namespace)Element[]Element 노드의 즉시 하위 노드인 지정된 이름과 네임스페이스를 가진 모든 Element 노드를 문서에 표시되는 순서대로 가져옵니다.
getContent(index)Content{@code Element} 노드의 즉시 하위 요소인 모든 노드 중에서 지정된 색인의 노드를 가져옵니다.
getContentSize()Integer{@code Element} 노드의 즉시 하위 요소인 노드 수를 가져옵니다.
getDescendants()Content[]{@code Element} 노드의 직접 또는 간접 하위 노드인 모든 노드를 문서에 표시되는 순서대로 가져옵니다.
getDocument()Document{@code Element} 노드가 포함된 XML 문서를 가져옵니다.
getName()StringElement 노드의 로컬 이름을 가져옵니다.
getNamespace()NamespaceElement 노드의 네임스페이스를 가져옵니다.
getNamespace(prefix)NamespaceElement 노드의 지정된 접두사가 있는 네임스페이스를 가져옵니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getQualifiedName()StringElement 노드의 로컬 이름과 네임스페이스 접두사를 [namespacePrefix]:[localName] 형식으로 가져옵니다.
getText()StringElement 노드의 텍스트 값을 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.
isAncestorOf(other)BooleanElement 노드가 지정된 Element 노드의 직접 상위 노드인지 또는 간접 상위 노드인지 확인합니다.
isRootElement()BooleanElement 노드가 문서의 루트 노드인지 확인합니다.
removeAttribute(attribute)BooleanElement 노드의 지정된 속성을 삭제합니다(해당 속성이 있는 경우).
removeAttribute(attributeName)Boolean지정된 이름의 이 Element 노드의 속성을 삭제합니다(네임스페이스가 없는 경우).
removeAttribute(attributeName, namespace)Boolean지정된 이름과 네임스페이스가 있는 이 Element 노드의 속성을 삭제합니다(이러한 속성이 있는 경우).
removeContent()Content[]{@code Element} 노드의 바로 아래 하위 노드인 모든 노드를 삭제합니다.
removeContent(content)Boolean노드가 {@code Element} 노드의 바로 아래 하위 요소인 경우 지정된 노드를 삭제합니다.
removeContent(index)Content{@code Element} 노드의 바로 아래 하위 요소인 모든 노드 중에서 지정된 색인의 노드를 삭제합니다.
setAttribute(attribute)ElementElement 노드에 지정된 속성을 설정합니다.
setAttribute(name, value)Element지정된 이름, 값, 네임스페이스가 없는 이 Element 노드의 속성을 설정합니다.
setAttribute(name, value, namespace)Element지정된 이름, 값, 네임스페이스로 이 Element 노드의 속성을 설정합니다.
setName(name)ElementElement 노드의 로컬 이름을 설정합니다.
setNamespace(namespace)ElementElement 노드의 네임스페이스를 설정합니다.
setText(text)ElementElement 노드의 텍스트 값을 설정합니다.

EntityRef

메서드

메서드반환 유형간략한 설명
detach()Content노드를 상위 Element 노드에서 분리합니다.
getName()StringEntityReference 노드의 이름을 가져옵니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getPublicId()StringEntityReference 노드의 공개 ID를 가져옵니다.
getSystemId()StringEntityReference 노드의 시스템 ID를 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.
setName(name)EntityRefEntityReference 노드의 이름을 설정합니다.
setPublicId(id)EntityRefEntityReference 노드의 공개 ID를 설정합니다.
setSystemId(id)EntityRefEntityReference 노드의 시스템 ID를 설정합니다.

Format

메서드

메서드반환 유형간략한 설명
format(document)String지정된 Document를 형식이 지정된 문자열로 출력합니다.
format(element)String지정된 Element 노드를 형식이 지정된 문자열로 출력합니다.
setEncoding(encoding)Format형식 지정자가 사용해야 하는 문자 인코딩을 설정합니다.
setIndent(indent)Format상위 요소를 기준으로 하위 요소의 들여쓰기에 사용되는 문자열을 설정합니다.
setLineSeparator(separator)Format형식 지정 도구가 일반적으로 줄바꿈을 삽입할 때마다 삽입할 문자열을 설정합니다.
setOmitDeclaration(omitDeclaration)Format형식 지정기에서 XML 선언(예: <?xml version="1.0" encoding="UTF-8"?>)을 생략할지 여부를 설정합니다.
setOmitEncoding(omitEncoding)Format형식 지정기에서 XML 선언에서 인코딩(예: <?xml version="1.0" encoding="UTF-8"?>의 인코딩 필드)을 생략해야 하는지 설정합니다.

Namespace

메서드

메서드반환 유형간략한 설명
getPrefix()String네임스페이스의 접두사를 가져옵니다.
getURI()String네임스페이스의 URI를 가져옵니다.

ProcessingInstruction

메서드

메서드반환 유형간략한 설명
detach()Content노드를 상위 Element 노드에서 분리합니다.
getData()StringProcessingInstruction 노드의 모든 명령어에 대한 원시 데이터를 가져옵니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getTarget()StringProcessingInstruction 노드의 타겟을 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.

Text

메서드

메서드반환 유형간략한 설명
append(text)Text노드에 이미 있는 콘텐츠에 지정된 텍스트를 추가합니다.
detach()Content노드를 상위 Element 노드에서 분리합니다.
getParentElement()Element노드의 상위 Element 노드를 가져옵니다.
getText()StringText 노드의 텍스트 값을 가져옵니다.
getValue()String노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다.
setText(text)TextText 노드의 텍스트 값을 설정합니다.

XmlService

속성

속성유형설명
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를 만듭니다.