XML DOM 노드
XML DOM에 따르면 XML 문서의 모든 것은 노드 입니다 .
- 전체 문서는 문서 노드입니다.
- 모든 XML 요소는 요소 노드입니다.
- XML 요소의 텍스트는 텍스트 노드입니다.
- 모든 속성은 속성 노드입니다.
- 주석은 주석 노드입니다.
DOM 예제
다음 XML 파일( books.xml )을 보십시오.
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
위 XML의 루트 노드 이름은 <bookstore>입니다.
문서의 다른 모든 노드는 <bookstore>에 포함되어 있습니다.
루트 노드 <bookstore>에는 4개의 <book> 노드가 있습니다.
첫 번째 <book> 노드는 <title>, <author>, <year> 및 <price>와 같은 자식 노드를 보유합니다.
자식 노드에는 "Everyday Italian", "Giada De Laurentiis", "2005" 및 "30.00"이라는 텍스트 노드가 각각 하나씩 있습니다.
텍스트는 항상 텍스트 노드에 저장됩니다.
DOM 처리의 일반적인 오류는 요소 노드에 텍스트가 포함될 것으로 예상하는 것입니다.
그러나 요소 노드의 텍스트는 텍스트 노드에 저장됩니다.
이 예: <year>2005</year> 에서 요소 노드 <year>는 값이 "2005"인 텍스트 노드를 보유합니다.
"2005"는 <연도> 요소의 값 이 아닙니다 !
XML DOM 노드 트리
XML DOM은 XML 문서를 트리 구조로 봅니다. 트리 구조를 노드 트리라고 합니다.
모든 노드는 트리를 통해 액세스할 수 있습니다. 내용을 수정하거나 삭제할 수 있으며 새 요소를 만들 수 있습니다.
노드 트리는 노드 집합과 노드 간의 연결을 보여줍니다. 트리는 루트 노드에서 시작하여 트리의 가장 낮은 수준에 있는 텍스트 노드로 분기됩니다.
위 이미지는 XML 파일 books.xml 을 나타냅니다 .
노드 부모, 자식 및 형제 자매
노드 트리의 노드는 서로 계층 관계가 있습니다.
부모, 자식 및 형제라는 용어는 관계를 설명하는 데 사용됩니다. 부모 노드에는 자식이 있습니다. 같은 수준에 있는 아이들을 형제자매(형제 또는 자매)라고 합니다.
- 노드 트리에서 최상위 노드를 루트라고 합니다.
- 루트를 제외한 모든 노드에는 정확히 하나의 부모 노드가 있습니다.
- 노드는 임의의 수의 자식을 가질 수 있습니다.
- 리프는 자식이 없는 노드입니다.
- 형제는 부모가 같은 노드입니다.
다음 이미지는 노드 트리의 일부와 노드 간의 관계를 보여줍니다.
XML 데이터는 트리 형식으로 구조화되어 있기 때문에 트리의 정확한 구조와 그 안에 포함된 데이터 유형을 알지 못해도 탐색할 수 있습니다.
이 튜토리얼의 뒷부분에서 노드 트리를 탐색하는 방법에 대해 자세히 알아볼 것입니다.
첫째 아이 - 마지막 아이
다음 XML 조각을 보십시오.
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
위의 XML에서 <title> 요소는 <book> 요소의 첫 번째 자식이고 <price> 요소는 <book> 요소의 마지막 자식입니다.
또한 <book> 요소는 <title>, <author>, <year>, <price> 요소의 부모 노드입니다.