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 노드의 표현입니다.
Format추가로 맞춤설정할 수 있는 세 가지 사전 정의된 형식을 포함하는 XML 문서를 출력하기 위한 형식 지정 도구.
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)AttributeElement 노드의 속성을 가져오고 네임스페이스는 사용하지 않습니다.
getAttribute(name, namespace)Attribute지정된 이름과 네임스페이스를 사용하여 이 Element 노드의 속성을 가져옵니다.
getAttributes()Attribute[]Element 노드의 모든 속성을 문서에 표시된 순서대로 가져옵니다.
getChild(name)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지정된 이름을 사용하여 루트 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를 만듭니다.