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)Element지정된 노드의 Element 노드의 바로 하위 노드인 모든 노드 간에 지정된 노드를 삽입합니다.
cloneContent()Content[]{@code 요소} 노드의 바로 하위 노드인 모든 노드의 연결되지 않은 사본을 만듭니다.
detach()Content상위 Element 노드에서 노드를 분리합니다.
getAllContent()Content[]{@code Element} 노드의 바로 하위 노드인 모든 노드를 가져옵니다.
getAttribute(name)Attribute네임스페이스가 아닌 지정된 이름으로 이 Element 노드의 속성을 가져옵니다.
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 요소} 노드가 포함된 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 요소} 노드의 직계 하위 노드인 경우 지정된 노드를 삭제합니다.
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를 만듭니다.