이 서비스를 사용하면 스크립트에서 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 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 노드의 직계 하위 요소인 네임스페이스를 가져오지 않습니다. |
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 Element} 노드가 포함된 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 Element} 노드의 직계 하위 노드인 경우 삭제합니다. |
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 콘텐츠 노드의 유형을 나타내는 열거형입니다. |