DOM AIP에서 모든건 Node로 표현되며 문서의 각 구성 요소들은 모두 Node 또는 하위 인터페이스로 매핑됨



- Document : 전체 문서를 나타낸다.
- Element : 각 태그를 나타낸다.
- Text : 문자열 데이터가 Text 노드로 표현된다.
(ex. <title>웹 표준</title>에서 "웹 표준" 문자열은 Text 노드에 저장
- CDataSection : XML문서의 CDATA 영역의 문자열 값을 저장한다.

@ Node 인터페이스의 주요 프로퍼티
 프로퍼티 타입  프로퍼티 이름  설명
 String  nodeName  노드의 이름
 String  nodeValue  노드의 값
 unsigned short  nodeType  노드 타입
 Node  parentNode  부모 노드
 NodeList  childNodes  자식 노드 목록
 Node  firstChild  첫 번째 자식 노드
 Node  lastChild  마지막 자식 노드
 Node previousSibling  현재 노드와 같은 부모를 갖는 자식 노드 중 현재 노드 이전의 자식 노드
 Node nextSibling  현재 노드와 같은 부모를 갖는 자식 노드 중 현재 노드 다음의 자식 노드
 Document  ownerDocument  이 노드가 포함된 Document 객체

NodeList는 length 와 item(i)를 제공한다.
- length : NodeList에 저장된 노드의 개수(NodeList의 길이) 
- item(i) : 인덱스 i에 저장된 노드를 구함(i는 0부터 시작)

@ Node에 정의된 nodeType관련 상수값
NodeType Named Constant
1 ELEMENT_NODE
2 ATTRIBUTE_NODE
3 TEXT_NODE
4 CDATA_SECTION_NODE
5 ENTITY_REFERENCE_NODE
6 ENTITY_NODE
7 PROCESSING_INSTRUCTION_NODE
8 COMMENT_NODE
9 DOCUMENT_NODE
10 DOCUMENT_TYPE_NODE
11 DOCUMENT_FRAGMENT_NODE
12 NOTATION_NODE

@ Document 인터페이스의 주요 프로퍼티 및 함수
- getElementsByTagName : 지정한 이름의 태그에 해당하는 NodeList를 구함
- getElementById : id 속성의 값이 일치하는 Element를 구함

@ Element 인터페이스의 주요 프로퍼티 및 함수
- getAttribute(String name) : name에 해당하는 속성의 값을 구한다.
- setAttribute(String name, String value) : 이름이 name인 속성의 값을 value로 지정한다.
- removeAttribute(String name) : 이름이 name인 속성을 제거한다.

@ Document 인터페이스의 Element 노드 생성 함수
- createElement(String tagName) : 지정한 태그 이름을 갖는 Element 노드를 생성한다.
- createTextNode(String text) : text를 값으로 갖는 Text 노드를 생성한다.
예)
var pNode =document.createElement("p");
var textNode= document.createTextNode("테스트");
pNode.appendChild(textNode);

@ Node 인터페이스의 DOM트리 변경 관련 함수
 함 수  설명
 insertBefore(Node newChild, Node refChild)  현재 노드의 자식 노드인 refChild 노드의 previousSibling 자리에 newChild 노드를 삽입
 replaceChild(Node newChild,Node oldChild) 현재 노드의 자식 노드인 oldChild 노드를 새로운 newChild노드로 교체
 removeChild(Node oldChild) 현재 노드의 자식 노드인 oldChild를 현재 노드에서 제거
 appendChild(Node newChild) newChild 노드를 현재 노드의 마지막 자식 노드로 추가

@ responseXML 응답 읽어오기
XMLHttpRequest 객체는 XML문서를 응답 데이터로 사용할 수 있다. responseXML을 사용하면 된다.

@ XSL/T는 XML문서를 XSL을 사용해서 원하는 문서로 변환시킬 때 사용되는 기술.
 주로 XML문서를 HTML문서로 변환할 때 많이 사용된다. XML을 읽어 온후 XSL을 읽어오고 XSL을 사용해서 XML을 HTML 코드로 변환해야 한다.

IE의 경우
bookList.innerHTML=xmlDoc.transformNode(xslDoc);

IE가 아닌 경우
var xsltProc = new XSLTProcessor();
xsltProc.importStylesheet(xslDoc);
var fragment = xsltProc.transformToFragment(xmlDoc,document);
bookList.appendChild(fragment);

innerHTML이 아닌 appencChild()함수를 사용하는 이유는 transformToFragment() 함수가
DOM트리의 노드를 생성하기 때문이다.

XSL 파일 코드
XSL파일을 이용해서 XML문서를 HTML코드로 변환하는 코드

Posted by Taoist
,