이 서비스를 통해 스크립트는 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); }
클래스
이름 | 간략한 설명 |
---|---|
Attribute | XML 속성의 표현입니다. |
Cdata | XML CDATASection 노드의 표현입니다. |
Comment | XML Comment 노드의 표현입니다. |
Content | 일반 XML 노드의 표현. |
ContentType | XML 콘텐츠 노드의 유형을 나타내는 열거형입니다. |
DocType | XML DocumentType 노드의 표현입니다. |
Document | XML 문서의 표현. |
Element | XML Element 노드의 표현입니다. |
EntityRef | XML EntityReference 노드의 표현입니다. |
Format | XML 문서를 출력하기 위한 형식 지정 도구이며 추가로 맞춤설정할 수 있는 사전 정의된 세 가지 형식이 있습니다. |
Namespace | XML 네임스페이스의 표현입니다. |
ProcessingInstruction | XML ProcessingInstruction 노드의 표현입니다. |
Text | XML 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() | String | Text 노드의 텍스트 값을 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
setText(text) | Text | Text 노드의 텍스트 값을 설정합니다. |
Comment
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
detach() | Content | 상위 Element 노드에서 노드를 분리합니다. |
getParentElement() | Element | 노드의 상위 Element 노드를 가져옵니다. |
getText() | String | Comment 노드의 텍스트 값을 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
setText(text) | Comment | Comment 노드의 텍스트 값을 설정합니다. |
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
속성
속성 | 유형 | 설명 |
---|---|---|
CDATA | Enum | XML CDATASection 노드입니다. |
COMMENT | Enum | XML Comment 노드입니다. |
DOCTYPE | Enum | XML DocumentType 노드입니다. |
ELEMENT | Enum | XML Element 노드입니다. |
ENTITYREF | Enum | XML EntityReference 노드입니다. |
PROCESSINGINSTRUCTION | Enum | XML ProcessingInstruction 노드입니다. |
TEXT | Enum | XML Text 노드입니다. |
DocType
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
detach() | Content | 상위 Element 노드에서 노드를 분리합니다. |
getElementName() | String | DocType 선언에 지정된 루트 Element 노드의 이름을 가져옵니다. |
getInternalSubset() | String | DocumentType 노드의 내부 하위 집합 데이터를 가져옵니다. |
getParentElement() | Element | 노드의 상위 Element 노드를 가져옵니다. |
getPublicId() | String | DocumentType 노드의 외부 하위 집합 데이터의 공개 ID를 가져옵니다. |
getSystemId() | String | DocumentType 노드의 외부 하위 집합 데이터의 시스템 ID를 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
setElementName(name) | DocType | DocType 선언에서 지정할 루트 Element 노드의 이름을 설정합니다. |
setInternalSubset(data) | DocType | DocumentType 노드의 내부 하위 집합 데이터를 설정합니다. |
setPublicId(id) | DocType | DocumentType 노드의 외부 하위 집합 데이터의 공개 ID를 설정합니다. |
setSystemId(id) | DocType | DocumentType 노드의 외부 하위 집합 데이터의 시스템 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) | Element | 이 Element 노드의 직계 하위 요소인 지정된 이름과 네임스페이스를 가진 첫 번째 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() | String | Element 노드의 로컬 이름을 가져옵니다. |
getNamespace() | Namespace | Element 노드의 네임스페이스를 가져옵니다. |
getNamespace(prefix) | Namespace | Element 노드에 지정된 접두사가 있는 네임스페이스를 가져옵니다. |
getParentElement() | Element | 노드의 상위 Element 노드를 가져옵니다. |
getQualifiedName() | String | Element 노드의 로컬 이름 및 네임스페이스 프리픽스를 [namespacePrefix]:[localName] 형식으로 가져옵니다. |
getText() | String | Element 노드의 텍스트 값을 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
isAncestorOf(other) | Boolean | 이 Element 노드가 지정된 Element 노드의 직접 또는 간접 상위 항목인지 확인합니다. |
isRootElement() | Boolean | Element 노드가 문서의 루트 노드인지 확인합니다. |
removeAttribute(attribute) | Boolean | 이 Element 노드에 해당 속성이 있으면 이 속성을 삭제합니다. |
removeAttribute(attributeName) | Boolean | 지정된 이름이 있고 이 네임스페이스가 있는 경우 네임스페이스가 없는 Element 노드의 속성을 삭제합니다. |
removeAttribute(attributeName, namespace) | Boolean | 지정된 이름과 네임스페이스가 있는 경우 이 Element 노드의 속성을 삭제합니다. |
removeContent() | Content[] | {@code Element} 노드의 바로 아래에 있는 하위 노드를 모두 제거합니다. |
removeContent(content) | Boolean | 노드가 {@code 요소} 노드의 직계 하위 노드인 경우 지정된 노드를 삭제합니다. |
removeContent(index) | Content | 지정된 색인에서 {@code Element} 노드의 바로 하위 노드인 모든 노드 간에 노드를 삭제합니다. |
setAttribute(attribute) | Element | 이 Element 노드에 지정된 속성을 설정합니다. |
setAttribute(name, value) | Element | 지정된 이름, 값, 네임스페이스 없이 이 Element 노드의 속성을 설정합니다. |
setAttribute(name, value, namespace) | Element | 지정된 이름, 값, 네임스페이스로 이 Element 노드의 속성을 설정합니다. |
setName(name) | Element | Element 노드의 로컬 이름을 설정합니다. |
setNamespace(namespace) | Element | Element 노드의 네임스페이스를 설정합니다. |
setText(text) | Element | Element 노드의 텍스트 값을 설정합니다. |
EntityRef
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
detach() | Content | 상위 Element 노드에서 노드를 분리합니다. |
getName() | String | EntityReference 노드의 이름을 가져옵니다. |
getParentElement() | Element | 노드의 상위 Element 노드를 가져옵니다. |
getPublicId() | String | EntityReference 노드의 공개 ID를 가져옵니다. |
getSystemId() | String | EntityReference 노드의 시스템 ID를 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
setName(name) | EntityRef | EntityReference 노드의 이름을 설정합니다. |
setPublicId(id) | EntityRef | EntityReference 노드의 공개 ID를 설정합니다. |
setSystemId(id) | EntityRef | EntityReference 노드의 시스템 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() | String | ProcessingInstruction 노드의 모든 명령에 대한 원시 데이터를 가져옵니다. |
getParentElement() | Element | 노드의 상위 Element 노드를 가져옵니다. |
getTarget() | String | ProcessingInstruction 노드의 대상을 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
Text
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
append(text) | Text | 노드에 이미 존재하는 모든 콘텐츠에 지정된 텍스트를 추가합니다. |
detach() | Content | 상위 Element 노드에서 노드를 분리합니다. |
getParentElement() | Element | 노드의 상위 Element 노드를 가져옵니다. |
getText() | String | Text 노드의 텍스트 값을 가져옵니다. |
getValue() | String | 노드의 직접 또는 간접 하위 요소인 모든 노드의 텍스트 값을 문서에 표시되는 순서대로 가져옵니다. |
setText(text) | Text | Text 노드의 텍스트 값을 설정합니다. |
XmlService
속성
속성 | 유형 | 설명 |
---|---|---|
ContentTypes | ContentType | XML 콘텐츠 노드의 유형을 나타내는 열거형입니다. |