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)
그런 다음 parse()
모듈의 메서드를 사용하여 XML 파일을 구문 분석하고 구문 분석된 XmlDocument
개체를 xmlDoc
. 마지막으로 속성을 xmlDoc
사용하여 문서 루트 노드를 가져오고 노드 이름을 가져와 콘솔에 출력합니다.documentElement
XmlDocument는 전체 XML 문서의 항목이므로 이를 통해 문서의 관련 정보를 얻고 수정할 수 있습니다. 예를 xmlDoc.xmlVersion
들어 xmlDoc.xmlStandalone
및 각각을 통해 문서의 XML 버전 및 독립 실행형 특성을 가져오고 수정할 수 있습니다. xmlDoc.createProcessingInstruction()
방법을 통해 새로운 처리 명령 노드를 생성할 수도 있습니다 .
XmlDocument 개체는 XML 파일을 처리하고 구문 분석하는 데 큰 편리함을 제공하는 매우 강력한 유형입니다.
상속 관계
건설자
XmlDocument
XmlDocument 개체를 구성합니다.
1new XmlDocument(String type = "text/xml");
호출 매개변수:
- type: 문자열, 문서 객체의 유형 지정, 기본값은 "텍스트/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, 새로 생성된 ProcessingInstruction 노드
hasChildNodes
자식 노드가 있는지 쿼리
1Boolean XmlDocument.hasChildNodes();
반환 결과:
- Boolean, 자식 노드가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
normalize
인접한 텍스트 노드 병합 및 빈 텍스트 노드 삭제
1XmlDocument.normalize();
이 메서드는 현재 노드의 모든 자손을 반복하고 빈 텍스트 노드를 제거하여 문서를 정규화하고 인접한 모든 텍스트 노드를 병합합니다. 이 방법은 노드를 삽입하거나 삭제한 후 문서 트리 구조를 단순화하는 데 유용합니다.
cloneNode
지정된 노드의 정확한 복사본 생성
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
호출 매개변수:
- deep: Boolean, deep copy 여부, 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
개체의 문자열 표현을 반환하고 일반적으로 "[네이티브 개체]"를 반환하며 개체는 자체 특성에 따라 다시 구현될 수 있습니다.
1String XmlDocument.toString();
반환 결과:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
개체의 JSON 형식 표현을 반환하며 일반적으로 개체에 의해 정의된 읽기 가능한 속성 모음을 반환합니다.
1Value XmlDocument.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용하지 않음
반환 결과:
- Value, JSON 직렬화 가능 값을 반환합니다.