ObjectXml문서
Xml문서는 xml전체 XML 문서를 나타내고 전체 문서에 대한 액세스를 제공하는 모듈의 개체입니다.
XmlDocument는 문서 트리의 루트이며 전체 XML 문서의 모든 노드를 포함합니다. XmlDocument 개체는 다음 기능도 제공합니다.
- 요소 노드, 텍스트 노드, 주석, 처리 지침 등을 생성합니다.
- 문서 속성 및 관련 정보(예: DTD 주석 및 문서 선언)에 액세스하고 수정합니다.
- XML 문서 구문 분석
다음은 XmlDocument 개체를 사용하여 XML 문서를 구문 분석하는 샘플 코드입니다.
1
2
3
4
5
6
7
8
9var xml = require('xml');
var fs = require('fs');
var xmlStr = fs.readFile('test.xml');
var xmlDoc = xml.parse(xmlStr);
// get document root node name
var rootName = xmlDoc.documentElement.nodeName;
console.log(`文档根节点名称是 ${rootName}`);
위 코드에서는 먼저 fs
모듈 readFile()
메소드를 사용하여 XML 파일을 읽고 파일 스트림을 변수에 할당합니다 xmlStr
. [xml](../../module/ifs/xml.md)
그런 다음 모듈의 메서드를 사용하여 XML 파일을 구문 분석하고 parse()
구문 분석된 개체를 변수에 XmlDocument
할당합니다 xmlDoc
. 마지막으로 문서 루트 노드를 가져오고 해당 노드 이름을 가져와 콘솔에 출력하기 위해 속성 xmlDoc
을 사용합니다 .documentElement
XmlDocument는 전체 XML 문서의 입구이므로 이를 통해 문서 관련 정보를 얻고 수정할 수 있습니다. xmlDoc.xmlVersion
예를 들어, 및를 각각 통해 xmlDoc.xmlStandalone
문서의 XML 버전과 독립 실행형 속성을 얻고 수정할 수 있습니다 . 또한 xmlDoc.createProcessingInstruction()
이 메소드를 통해 새로운 처리 명령 노드를 생성할 수도 있습니다.
XmlDocument 개체는 XML 파일을 처리하고 구문 분석하는 데 큰 편의를 제공하는 매우 강력한 유형입니다.
상속관계
건설자
XmlDocument
XmlDocument 개체 생성
1new XmlDocument(String type = "text/xml");
호출 매개변수:
- type: 문자열, 문서 객체의 유형을 지정합니다. 기본값은 "text/xml", html을 처리해야 하는 경우 "text/html"을 지정해야 합니다.
구성원 속성
inputEncoding
문자열, 문서에 사용된 인코딩을 반환합니다(파싱 시).
1readonly String XmlDocument.inputEncoding;
xmlStandalone
부울, 문서가 독립형인지 여부를 설정하거나 반환합니다.
1Boolean XmlDocument.xmlStandalone;
xmlVersion
문자열은 문서의 XML 버전을 설정하거나 반환합니다.
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, 문서와 관련된 문서 유형 선언을 반환합니다.
1readonly XmlDocumentType XmlDocument.doctype;
DTD가 없는 XML 문서의 경우 null이 반환됩니다. 이 숙소는 다음을 제공합니다.XmlDocumentType개체(XmlDocument의 하위 노드)에 직접 액세스합니다.
documentElement
XmlElement, 문서의 루트 노드를 반환합니다.
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, HTML 문서의 헤드 노드를 반환하며 html 모드에서만 유효합니다.
1readonly XmlElement XmlDocument.head;
title
문자열, HTML 문서의 제목 노드 내용을 반환하며 html 모드에서만 유효합니다.
1readonly String XmlDocument.title;
body
XmlElement, HTML 문서의 본문 노드를 반환하며 html 모드에서만 유효합니다.
1readonly XmlElement XmlDocument.body;
nodeType
정수, 노드의 노드 유형을 반환합니다.
1readonly Integer XmlDocument.nodeType;
다양한 객체의 nodeType은 다양한 값을 반환합니다.
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXT_NODE(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: DOCUMENT_NODE(9)
- XmlDocumentType: DOCUMENT_TYPE_NODE(10)
nodeName
문자열, 해당 유형에 따라 노드 이름을 반환합니다.
1readonly String XmlDocument.nodeName;
다양한 객체의 nodeName은 다양한 값을 반환합니다.
- XmlElement:요소 이름
- XmlAttr: 속성 이름
- XmlText: #텍스트
- XmlCDATASection: #cdata-섹션
- XmlProcessingInstruction: 지정된 대상 대상을 반환합니다.
- XmlComment: #논평
- XmlDocument: #문서
- XmlDocumentType: 문서 유형 이름
nodeValue
문자열, 해당 유형에 따라 노드 이름을 반환합니다.
1String XmlDocument.nodeValue;
다양한 객체의 nodeName은 다양한 값을 반환합니다.
- XmlElement: 없는
- XmlAttr: 속성값
- XmlText: 노드의 내용
- XmlCDATASection: 노드의 내용
- XmlProcessingInstruction: 지정된 콘텐츠 데이터를 반환합니다.
- XmlComment: 주석 텍스트
- XmlDocument: 없는
- XmlDocumentType: 없는
ownerDocument
XmlDocument, 노드의 루트 요소(XmlDocument 개체)를 반환합니다.
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, 노드의 상위 노드를 반환할 수 있습니다.
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, 지정된 노드의 하위 노드의 노드 목록을 반환합니다.
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, 지정된 노드의 하위 요소 노드의 노드 목록을 반환합니다.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, 노드의 첫 번째 하위 노드를 반환합니다.
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, 노드의 마지막 자식 노드를 반환합니다.
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, 동일한 트리 수준에서 노드 바로 앞에 있는 노드를 반환합니다. 그러한 노드가 없으면 이 속성은 null을 반환합니다.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode는 동일한 트리 수준의 요소 바로 뒤에 있는 노드를 반환합니다. 그러한 노드가 없으면 속성은 null을 반환합니다.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, 노드의 첫 번째 하위 요소 노드를 반환합니다.
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, 노드의 마지막 하위 요소 노드를 반환합니다.
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, 동일한 트리 수준에서 노드 바로 앞에 있는 요소 노드를 반환합니다. 그러한 노드가 없으면 이 속성은 null을 반환합니다.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode는 요소(동일한 트리 수준) 바로 뒤에 요소 노드를 반환합니다. 그러한 노드가 없으면 속성은 null을 반환합니다.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
문자열은 선택한 요소의 텍스트를 쿼리하고 설정합니다. 쿼리 시에는 요소 노드 내 모든 텍스트 노드의 값을 반환하고, 설정 시에는 모든 하위 노드를 삭제하고 단일 텍스트 노드로 대체합니다.
1String XmlDocument.textContent;
멤버 함수
load
문서는 XML/HTML 문자열을 파싱하여 구성되며 다국어 지원은 지원되지 않습니다.
1XmlDocument.load(String source);
호출 매개변수:
- source: 문자열, 문서가 생성된 유형에 따라 구문 분석할 XML/HTML 텍스트
문서는 바이너리 XML/HTML 문자열을 파싱하여 구성되며 언어에 따라 자동으로 변환됩니다.
1XmlDocument.load(Buffer source);
호출 매개변수:
- source:Buffer, 생성 당시 문서 유형에 따라 구문 분석할 XML/HTML 텍스트
getElementsByTagName
지정된 이름을 가진 모든 요소가 포함된 노드 목록을 반환합니다.
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
호출 매개변수:
- tagName: 문자열, 검색할 태그 이름입니다. "*" 값은 모든 태그와 일치합니다.
결과 반환:
- XmlNodeList, 문서 트리에 지정된 태그 포함XmlElement노드XmlNodeList모으다. 반환된 요소 노드의 순서는 소스 문서에 나타나는 순서입니다.
이 메소드는XmlNodeList지정된 태그 이름을 가진 문서 내 모든 태그를 저장하는 객체(읽기 전용 배열로 처리 가능)XmlElement노드는 소스 문서에 나타나는 순서대로 저장됩니다.XmlNodeList개체는 "라이브"입니다. 즉, 지정된 태그 이름을 가진 요소가 문서에 추가되거나 삭제되면 해당 내용이 필요에 따라 자동으로 업데이트됩니다.
getElementsByTagNameNS
지정된 네임스페이스와 이름을 가진 모든 요소의 노드 목록을 반환합니다.
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
호출 매개변수:
- namespaceURI: 문자열, 검색할 네임스페이스 URI를 지정합니다. "*" 값은 모든 태그와 일치합니다.
- localName: 문자열, 검색할 태그 이름입니다. "*" 값은 모든 태그와 일치합니다.
결과 반환:
- XmlNodeList, 문서 트리에 지정된 태그 포함XmlElement노드XmlNodeList모으다. 반환된 요소 노드의 순서는 소스 문서에 나타나는 순서입니다.
이 메소드는 네임스페이스 및 이름을 기반으로 요소를 검색한다는 점을 제외하면 getElementsByTagName() 메소드와 유사합니다.
getElementById
지정된 id 속성을 가진 요소를 반환합니다.
1XmlElement XmlDocument.getElementById(String id);
호출 매개변수:
- id: 문자열, 검색할 ID
결과 반환:
- XmlElement, 노드 트리에 지정된 id 속성이 있음XmlElement마디
이 메소드는 문서의 하위 노드를 순회하고XmlElement지정된 id 속성을 가진 첫 번째 문서 요소를 나타내는 노드 개체입니다. .
getElementsByClassName
지정된 클래스 이름을 가진 모든 요소의 노드 목록을 반환합니다.
1XmlNodeList XmlDocument.getElementsByClassName(String className);
호출 매개변수:
- className: 문자열, 검색할 클래스 이름
결과 반환:
- XmlNodeList, 문서 트리에 지정된 클래스 이름 포함XmlElement노드XmlNodeList모으다. 반환된 요소 노드의 순서는 소스 문서에 나타나는 순서입니다.
이 메소드는XmlNodeList지정된 클래스 이름을 가진 모든 파일을 문서에 저장하는 객체(읽기 전용 배열로 처리 가능)XmlElement노드는 소스 문서에 나타나는 순서대로 저장됩니다.XmlNodeList개체는 "라이브"입니다. 즉, 지정된 태그 이름을 가진 요소가 문서에 추가되거나 삭제되면 해당 내용이 필요에 따라 자동으로 업데이트됩니다.
createElement
요소 노드 생성
1XmlElement XmlDocument.createElement(String tagName);
호출 매개변수:
- tagName: 문자열, 요소 노드의 지정된 이름을 지정합니다.
결과 반환:
- XmlElement, 새로 생성된 값을 반환합니다.XmlElement지정된 레이블 이름을 가진 노드
createElementNS
지정된 네임스페이스를 사용하여 요소 노드를 생성합니다.
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
호출 매개변수:
- namespaceURI: 문자열, 요소 노드 네임스페이스 URI를 지정합니다.
- qualifiedName: 문자열, 요소 노드의 지정된 이름을 지정합니다.
결과 반환:
- XmlElement, 새로 생성된 값을 반환합니다.XmlElement지정된 레이블 이름을 가진 노드
createTextNode
텍스트 노드 생성
1XmlText XmlDocument.createTextNode(String data);
호출 매개변수:
- data: 문자열, 이 노드의 텍스트를 지정합니다.
결과 반환:
createComment
주석 노드 생성
1XmlComment XmlDocument.createComment(String data);
호출 매개변수:
- data: 문자열, 이 노드의 주석 텍스트를 지정합니다.
결과 반환:
- XmlComment, 새로 생성된 값을 반환합니다.XmlComment노드, 코멘트 텍스트는 지정된 데이터입니다
createCDATASection
만들다XmlCDATASection마디
1XmlCDATASection XmlDocument.createCDATASection(String data);
호출 매개변수:
- data: 문자열, 이 노드가 CDATA 데이터를 지정함을 지정합니다.
결과 반환:
- XmlCDATASection, 새로 생성된 값을 반환합니다.XmlCDATASection노드, 내용은 지정된 데이터입니다
createProcessingInstruction
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
호출 매개변수:
- target: 문자열, 처리 명령의 대상을 지정합니다.
- data: 문자열, 처리 명령의 내용 텍스트를 지정합니다.
결과 반환:
- XmlProcessingInstruction, 새로 생성된 ProcessInstruction 노드
hasChildNodes
자식 노드가 있는지 쿼리
1Boolean XmlDocument.hasChildNodes();
결과 반환:
- Boolean, 하위 노드가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
normalize
인접한 Text 노드를 병합하고 빈 Text 노드 삭제
1XmlDocument.normalize();
이 메서드는 현재 노드의 모든 하위 노드를 순회하고 빈 Text 노드를 삭제하고 인접한 모든 Text 노드를 병합하여 문서를 정규화합니다. 이 방법은 노드를 삽입하거나 삭제한 후 문서 트리의 구조를 단순화하는 데 유용합니다.
cloneNode
지정된 노드의 정확한 복사본을 생성합니다.
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
호출 매개변수:
- deep: 부울, 전체 복사 여부, true인 경우 복제된 노드는 원본 노드의 모든 하위 노드를 복제합니다.
결과 반환:
- XmlNode, 복사된 노드를 반환합니다.
이 메서드는 호출된 노드의 복사본을 복사하고 반환합니다. 전달된 인수가 true이면 현재 노드의 모든 하위 노드도 재귀적으로 복사합니다. 그렇지 않으면 현재 노드만 복사합니다. 반환된 노드는 문서 트리에 속하지 않으며 해당 parentNode 속성은 null입니다. 요소 노드가 복사되면 모든 속성이 복사됩니다.
lookupPrefix
현재 노드의 지정된 네임스페이스 URI와 일치하는 접두사를 반환합니다.
1String XmlDocument.lookupPrefix(String namespaceURI);
호출 매개변수:
- namespaceURI: 문자열, 일치하는 네임스페이스 URI를 지정합니다.
결과 반환:
- String, 일치하는 접두사를 반환하고 일치하지 않으면 null을 반환합니다.
lookupNamespaceURI
현재 노드의 지정된 접두사와 일치하는 네임스페이스 URI를 반환합니다.
1String XmlDocument.lookupNamespaceURI(String prefix);
호출 매개변수:
- prefix: 문자열, 일치하는 접두사를 지정합니다.
결과 반환:
- String, 일치하는 네임스페이스 URI를 반환하고, 일치하지 않으면 null을 반환합니다.
insertBefore
기존 하위 노드 앞에 새 하위 노드를 삽입합니다.
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
호출 매개변수:
결과 반환:
- XmlNode, 새 자식 노드를 반환합니다.
newChild가 문서 트리에 이미 존재하는 경우 문서 트리에서 제거되고 새 위치에 다시 삽입됩니다. 한 문서의 노드(또는 한 문서에서 생성된 노드)는 다른 문서에 삽입할 수 없습니다. 즉, newChild의 ownerDocument 속성은 현재 노드의 ownerDocument 속성과 동일해야 합니다.
insertAfter
기존 하위 노드 뒤에 새 하위 노드 삽입
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
호출 매개변수:
결과 반환:
- XmlNode, 새 자식 노드를 반환합니다.
newChild가 문서 트리에 이미 존재하는 경우 문서 트리에서 제거되고 새 위치에 다시 삽입됩니다. 한 문서의 노드(또는 한 문서에서 생성된 노드)는 다른 문서에 삽입할 수 없습니다. 즉, newChild의 ownerDocument 속성은 현재 노드의 ownerDocument 속성과 동일해야 합니다.
appendChild
노드의 하위 노드 목록 끝에 새 하위 노드를 추가합니다.
1XmlNode XmlDocument.appendChild(XmlNode newChild);
호출 매개변수:
- newChild:XmlNode, 추가된 노드를 지정
결과 반환:
- XmlNode, 이 새로운 하위 노드를 반환합니다.
newChild가 문서 트리에 이미 존재하는 경우 문서 트리에서 제거되고 새 위치에 다시 삽입됩니다. 한 문서의 노드(또는 한 문서에서 생성된 노드)는 다른 문서에 삽입할 수 없습니다. 즉, newChild의 ownerDocument 속성은 현재 노드의 ownerDocument 속성과 동일해야 합니다.
replaceChild
하위 노드를 다른 노드로 교체
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
호출 매개변수:
결과 반환:
- XmlNode, 교체에 성공하면 이 메서드는 교체된 노드를 반환할 수 있으며, 교체에 실패하면 null을 반환합니다.
newChild가 문서 트리에 이미 존재하는 경우 문서 트리에서 제거되고 새 위치에 다시 삽입됩니다. 한 문서의 노드(또는 한 문서에서 생성된 노드)는 다른 문서에 삽입할 수 없습니다. 즉, newChild의 ownerDocument 속성은 현재 노드의 ownerDocument 속성과 동일해야 합니다.
removeChild
하위 노드 목록에서 노드 제거
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
호출 매개변수:
- oldChild:XmlNode, 삭제할 노드를 지정합니다.
결과 반환:
- XmlNode, 삭제에 성공하면 삭제된 노드를 반환하고, 실패하면 null을 반환한다.
toString
객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.
1String XmlDocument.toString();
결과 반환:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.
1Value XmlDocument.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용되지 않음
결과 반환:
- Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.