DOM (Document Object Model)

Slides:



Advertisements
Similar presentations
Parser 의 이해와 Parsing 손계선 강미정 서정은 5 월 25 일 발표자 : 손계선.
Advertisements

UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
DB 프로그래밍 학기.
DB 프로그래밍 학기.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
제14장 동적 메모리.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
연결리스트(linked list).
제 9 장 구조체와 공용체.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
5장. 참조 타입.
XML DOM (Document Object Model)
제 3장. C보다 나은 C++ II.
12 ███████████ 12.
Heesang kim PL/SQL 3 Heesang kim.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
[ 고급소프트웨어공학 ] XML parser: DOM G 김지희.
XML 조작을 위한 DOM 활용 ㅎㅎ DOM 개념 DOM API 활용 DOM을 활용한 XML 문서 조작.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
프로그래밍 랩 – 7주 리스트.
PySpark Review 박영택.
11장. 1차원 배열.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
C#.
Method & library.
JA A V W. 03.
자바 5.0 프로그래밍.
인터넷응용프로그래밍 JavaScript(Intro).
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
XML-II (eXtensible Markup Language) DTD/DOM
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
Canary value 스택 가드(Stack Guard).
데이터 동적 할당 Collection class.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
XML.NET (2/2) DB를 이용한 XML 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ)
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
 6장. SQL 쿼리.
13. 포인터와 배열! 함께 이해하기.
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
Presentation transcript:

DOM (Document Object Model) 6조 20020456 남채훈 20021155 장희균 2019-08-16

목차 DOM 개요 DOM 목적 DOM 장점, 단점 DOM 구조 DOM 인터페이스 및 예제 2019-08-16

DOM 개요 DOM(Document Object Model) 정의 DOM의 특징 객체 지향 모델로 구조화된 문서를 표현 플랫폼/ 언어 중립적 W3C에 의해 표준화 DOM의 특징 객체 모델 기반 API 노드(node) 단위로 데이터 처리 문서의 구조 정보와 내용을 객체로 이용 메모리 적재 방식 2019-08-16

DOM 목적 XML DOM의 목적 XML 문서를 생성, 검색, XML 문서가 메모리 상주해 있는 동안 일부 수정, 추가, 삭제 할 수 있는 인터페이스 제공 XML 문서가 메모리상에 올라갈 때 문서에 대한 논리적인 View를 제공 XPath 처럼 노드로 구성된 일종의 트리 모양을 가진 계층구조로 XML 문서 표현 2019-08-16

DOM 장점, 단점 DOM 장점 DOM 단점 XML 문서 조작을 위한 인터페이스 공통 인터페이스 공유를 통해 프로그래머 생산성 향상 DOM 단점 큰 규모의 XML 문서를 다루는 데는 비효율적 대안으로 SAX (Simple API for XML) 2019-08-16

DOM 구조 <?xml version="1.0" encoding="utf-8" ?> <books> <author>Carson</author> <price format="dollar">31.95</price> <pubdate>05/01/2001</pubdate> </book> <pubinfo> <publisher>MSPress</publisher> <state>WA</state> </pubinfo> </books> 2019-08-16

DOM 구조 XML 데이터를 DOM 구조로 읽어 올 때 문서 구조 그림 2019-08-16

DOM Interface - Node DOM 객체가 만들어지는 기본 인터페이스 프로퍼티 타입 설명 nodeName DOMString(Read) 노드의 이름, 타입에 따라 다른 이름 반환 nodeValue DOMString 노드의 값, 타입에 따라 다른 값을 반환 nodeType unsingned short (Read) 노드의 타입 parentNode Node(Read) 이 노드의 부모 노드 childNode NodeList(Read) 이 노드의 자식 노드를 포함하는 NodeList 자식노드가 없으면 빈 NodeList 반환 firstChild 이 노드의 첫 번째 자식 노드 lastChild 이 노드의 마지막 자식 노드 previousSibling 이 노드의 바로 앞 노드 nextSibling 이 노드의 바로 뒤 노드 2019-08-16

DOM Interface - Node 프로퍼티 타입 설명 attributes NamedNodeMap (Read) ownerDocument DOMStirng(Read) 이 노드가 속한 도큐먼트 namespaceURI DOMString(Read) 이 노드의 네임스페이스 URI prefix DOMString 네임스페이스 접두어 localName 노드의 Qname 부분 이름을 반환 2019-08-16

DOM Interface - Node 함수 설명 존재하는 refChild 앞에 newChild를 삽입 Node insertBefore(Node newChild, Node refChild) 존재하는 refChild 앞에 newChild를 삽입 refChild가 NULL이면 리스트 끝에 삽입 Node replaceChild(Node newChild, Node oldChild) oldChild를 newChild로 대체 oldChild를 반환 Node removeChild(Node oldChild) 리스트에서 oldChild를 제거하고 그것을 반환 Node appendChild(Node newChild) 리스트 끝에 newChild를 추가하고 그것을 반환 boolean hasChildNodes() 노드에 자식이 있으면 true, 없으면 false Node cloneNode(boolean deep) 이 노드를 반환, 파라미터가 true이면 노드의 하위 트리까지 복사하고 그렇지 않으면 그 노드만 복사 void normlize() 복수의 근접한 Text 자식 노드가 있으면 그것을 합침 boolean supports(DOMString feature, DOMString version) DOM 구현체가 넘겨받은 특징을 지원하는지 여부 검사, 지원하면 true, 아니면 false 2019-08-16

DOM Interface – Document 전체 XML 문서를 표현 Node 인터페이스 상속 프로퍼티 타입 설명 DocType DocumentType(Read) 이 문서와 연결된 문서 형식을 표현하는 Document Type 객체 반환 정의된 문서 형식이 없다면 NULL반환 Implementation DOMImplementation (Read) 이 문서에 사용된 DOMImplementation 객체 DocumentElement Element(Read) 이 문서의 루트 엘리먼트 2019-08-16

DOM Interface - Document 함수 설명 Element createElement(DOMString tagName) 지정된 이름으로 엘리먼트를 생성 DocumentFragment createDocumentFragment() 빈 DocumentFragment 객체를 생성 Text create TextNode(DOMString data) data에 텍스트를 포함하는 Text 노드를 생성 Comment createComment(DOMString data) data에 텍스트를 포함하는 Comment 노드를 생성 CDATASection createCDATASection(DOMString data) data에 텍스트를 포함하는 CDATASection 노드를 생성 ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data) 지정된 target과 data를 가지는 ProcessingInstruction 노드를 생성 Attr createAttribute(DOMString name) 지정된 name을 가지는 어트리뷰트를 생성 EntityReference createEntityReference(DOMString name) 지정된 name으로 엔티티 참조 생성 2019-08-16

DOM Interface - Document 함수 설명 NodeList getElementsByTagName(DOMStringtagname) 문서에서 이 tagname을 가진 모든 엘리먼트를 NodeList로 반환, 엘리멘트 문서에 있는 순서로 반환 Node importNode(Node importedNode, boolean deep) 다른 문서에서 importedNode를 가져옴. 이전 문서에서 원래 노드 지원하지 않고 복제 Element createElementNS(DOMStringanmespaceURI, DOMStringqualifiedName) 지정된 네임스페이스와 Qname로 엘리먼트를 생성 Attr createAttributeNS(DOMStringnamespaceURI, DOMStringqualifiedName) 지정된 네임스페이스와 Qname로 어트리뷰트를 생성 NodeList getElementsByTagNameNS(DOMString namespaceURI, DOMString localName) 지정된 부분 이름을 가지고 namespaceURI에 의해서 정해지는 네임스페이스 안에 있는 모든 엘리먼트 NodeList로 반환 Element getElementByld(DOMStringelementID) elementID를 가진 엘리먼트를 반환 2019-08-16

DOM Interface - DOMImplementation 특정 문서에 종속적이지 않은 어떤 문서라도 사용할 수 있는 함수 제공 함수 설명 boolean hasFeature(DOMString feature, DOMString version) 이 DOM 구현체가 요청 받은 feature를 지원하는지 여부를 반환 version은 테스트할 이 특징의 버전 DocumentType createDocumentType(DOMString qualifiedName, DOMString publicID, DOMString systemID, DOMString internalSubset) 지정된 어트리뷰트를 가지고 Document Type 객체를 만듬 Document createDocument(DOMString namespaceURI, DOMString qulifiedName, DocumentType doctype) 지정된 qualifiedName을 가지고 Document 객체를 만듬 2019-08-16

DOM Interface - NodeList 인덱스로 접근이 가능한 노드 그룹을 포함 프로퍼티 타입 설명 Length unsigned long(Read) 리스트에 포함된 노드의 수. 유요 숫자는 0 부터 length-1까지 함수 설명 Node item(unsigned long index) 인덱스에 해당하는 노드를 반환. 인덱스가 길이와 같거나 더 크면 NULL을 반환 2019-08-16

DOM Interface - Element Node 인터페이스에서 상속 프로퍼티 타입 설명 agName DOMString(Read) 엘리먼트 이름 함수 설명 OMString getAttribute(DOMString name) 지정된 name으로 어트리뷰트 값을 반환, 어트리뷰트가 값을 가지고 있지 않으면 빈 문자열 반환 void setAttribute(DOMString name, DOMString value) 특정 어트리뷰트에 새로운 값 할당. 해당 어트리뷰트가 존재하지 않으면 새롭게 생성 void removeAttribute(DOMString name) 어트리뷰트 제거, 어트리뷰트가 기본값을 가지고 있으면 이 기본 값을 가진 동일 어트리뷰트로 대체 void getAttributeNode(DOMString name) name을 가진 Attr 노드를 반환, 어트리뷰트가 존재 하지 않으면 NULL 반환 2019-08-16

DOM Interface - Element 함수 설명 Attr setAttributeNode (Attr newAttr) 새로운 어트리뷰트 노드 추가. 동일한 이름을 가진 것이 이미 있으면 치환 Attr removeAttributeNode(Attr oldAttr) 지정한 Attr노드를 제거하고 반환 NodeList getElementsByTagName(DOMString name) 주어진 노드 이름을 가진 모든 자손들을 NodeList로 반환 DOMString getAttributeNS(DOMString namespaceURI, DOMString localName) 지정된 어트리뷰트 값을 반환, 어트리뷰트가 지정되지 않거나 값이 없으면 빈 문자열을 반환 void setAttributeNS(DOMString namespaceURI, DOMStirng qualifiedName, DOMString value) 지정된 어트리뷰트에 새로운 값을 할당 void removeAttributeNS(DOMString namespaceURI, DOMString localName) 지정된 어트리뷰트 제거 Attr getAttributeNodeNS(DOMString namespaceURI, DOMString locarName) 지정된 어트리뷰트를 가진 Attr 노드를 반환 Attr setAttributeNodeNS(Attr newAttr) 리스트에 Attr 노드를 추가 2019-08-16

DOM Interface - DNamedNodeMap 노드의 집합을 순서 없이 제공 노드들은 이름으로 추출 가능 프로퍼티 타입 설명 length unsigned long(Read) 이 맵에 있는 노드의 개수 함수 설명 Node getNamedItem(DOMString name) 지정된 name을 nodeName으로 가진 Node를 반환 Node setNameItem(Node arg) arg 파라미터는 추가될 Node 객체. nodeName 프로퍼티가 이름을 위해 사용 Node removeNamedItem(DOMStirng name) 지정된 이름을 가진 Node가 제거되고 그것을 반환 Node item(unsigned long index) 지정된 인덱스를 가진 노드 반환 Node setNamedItmeNS(Node arg) arg 파라메터는 추가될 Node 객체 2019-08-16

DOM Interface - Attr Attribute를 다루는 데 필요한 프로퍼티 제공 Node 인터페이스 상속 프로퍼티 타입 설명 name DOMStirng(Read) 어트리뷰트 이름 specified boolean(Read) 어트리뷰트가 지정되었는지 여부를 알려줌 value DOMString 어트리뷰트 값 owerElement Element(Read) 어트리뷰트가 속한 엘리먼트를 표현 2019-08-16

DOM Interface - CharacterData 문자 데이터를 다루는 데 필요한 프로퍼티, 함수 제공 Node 인터페이스 상속 프로퍼티 타입 설명 Data DOMString CharacterData 노드의 텍스트 length Unsigned long(Read) 이 노드에 있는 문자 수 함수 설명 DOMString subStringData(unsigned long offset, unsigned long count) offset으로 시작하는 부분의 문자열을 반환, count만큼 문자열 반환 void appendData(DOMString arg) 문자열 뒤에 arg를 붙임 void insertData(unsigned long offset, unsigned long count) 문자열의 가운데 offset으로 시작하는 부분에 arg 문자열 삽입 void deleteData(unsigned long offset, unsigned long count) offser부터 문자열 부분을 제거, count만큼 문자열 제거 2019-08-16

DOM Interface - Text 텍스트 노드를 다루는 데 필요한 함수 제공 CharacterData 인터페이스를 상속 설명 Text splitText(unsigned long offset) 하나의 Text노드를 인접한 두 개의 Text 노드로 나눔 offset까지 첫 번째 노드, 그 이후가 두 번째 노드 2019-08-16

DOM 예제 자식 노드 탐색하기 2019-08-16

DOM 예제 노드 추가하기 2019-08-16

DOM 예제 Attribute 추가 및 삭제 2019-08-16

DOM 예제 DOM Exception 예제 2019-08-16