XML DOM 노드

XML DOM에 따르면, XML 문서의 모든 내용은노드

  • 전체 문서는 문서 노드입니다
  • 각 XML 요소는 요소 노드입니다
  • XML 요소의 텍스트는 텍스트 노드입니다
  • 각 속성은 속성 노드입니다
  • 비고는 비고 노드입니다

DOM 예제

다음 XML 파일을 보세요 (books.xml):

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="美食">
  <title lang="zh">雅舍谈吃</title>
  <author>梁实秋</author>
  <press>江苏文艺出版社</press>
  <year>2013</year>
  <price>35</price>
  <ISBN>9787539962771</ISBN>
</book>
<book category="children">
  <title lang="zh">우아한 고양이 아빠</title>
  <author>로尔德 달</author>
  <translator>代维</translator>
  <press>mingtian chu ban she</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="문학">
  <title lang="zh">익숙함을 낯선 것으로 만들다</title>
  <author>zigemang baoman</author>
  <author>pieter haufner</author>
  <translator>wang li qiu</translator>
  <press>nanjing da xue chu ban she</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="과학">
  <title lang="zh">너는 비행하고 싶은가, 새처럼?</title>
  <author>li chao de dao金斯</author>
  <author>yan a luenzuo wa</author>
  <translator>gaotianyu</translator>
  <press>�unan keji shu ce she</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="정치" cover="평간본">
  <title lang="zh">미국의 민주주의에 대해</title>
  <author>도크벨</author>
  <translator>도광량</translator>
  <press>상업 출판사</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

위의 XML에서 루트 점은 <bookstore>입니다。

문서의 모든 다른 점은 <bookstore>에 포함되어 있습니다。

루트 점 <bookstore>는 5 개의 <book> 점을 가지고 있습니다。

첫 번째 <book> 점은 6 개의 자节点를 포함하고 있습니다:<title>、<author>、<press>、<year>、<price> 및 <ISBN>。

각 자식 노드는 텍스트 노드를 포함하고 있습니다:

  • "雅舍谈吃"
  • "梁实秋"
  • "江苏文艺出版社"
  • "2012"
  • "48.00"
  • "9787100011105"

텍스트는 항상 텍스트 노드에 저장됩니다

DOM 처리에서 일반적인 오류는 요소 노드가 텍스트를 포함한다고 생각하는 것입니다。

그러나 요소 노드의 텍스트는 텍스트 노드에 저장됩니다。

이 예제에서:<year>2013</year>,요소 노드 <year>는 "2012" 값을 가진 텍스트 노드를 포함합니다。

"2012" 아니요 <year> 요소의 값을 표시합니다!

XML DOM 노드 트리

XML DOM은 XML 문서를 트리 구조로 본다. 이 트리 구조는노드 트리.

이 트리를 통해 모든 노드에 접근할 수 있습니다. 내용을 수정하거나 지우거나 새로운 요소를 생성할 수 있습니다.

이 노드 트리는 노드의 집합과 그들 간의 연결을 보여줍니다. 이 트리는 루트 노드에서 시작하여 트리의 가장 하위层级로 텍스트 노드로 가는 방향으로 가지를 내리게 됩니다:

DOM 노드 트리

위 그림은 XML 파일을 나타냅니다 books.xml.

부모, 자식, 형제 노드

노드 트리의 노드는 서로 다른 등급 관계를 가집니다.

용어 "부모", "자식", "형제"는 이러한 관계를 설명하는 데 사용됩니다. 부모 노드는 자식 노드가 있으며, 동일层级에 있는 자식 노드는 동일层级 노드 또는 형제 노드(형제 또는 누이)라고 합니다.

  • 노드 트리에서 최상위 노드는 루트 노드라고 합니다
  • 루트 노드를 제외하고, 각 노드는 하나의 부모 노드를 가집니다
  • 노드는 제한 없이 많은 자식 노드를 가질 수 있습니다
  • 잎 노드는 자식 노드가 없는 노드입니다
  • 형제 노드는 같은 부모 노드를 가진 노드입니다

아래 그림은 노드 트리의 일부와 노드 간의 관계를 보여줍니다:

DOM 노드 트리

XML 데이터는 트리 형태로 구조화되었기 때문에, 트리의 정확한 구조나 포함된 데이터 유형을 알지 않더라도 순회할 수 있습니다。

이 튜토리얼의 후반에서 노드 트리를 순회하는 방법에 대해 더 많이 배울 것입니다。

주석:부모 노드:Parent Node, 자식 노드:Children Node, 동일层级 노드:Sibling Node。

첫 번째 자식 노드 - 마지막 자식 노드

여기서 다음 XML 부분을 확인하십시오:

<bookstore>
  <book category="美食">
    <title lang="zh">雅舍谈吃</title>
    <author>梁实秋</author>
	<press>江苏文艺出版社</press>
    <year>2013</year>
    <price>35</price>
	<ISBN>9787100011105</ISBN>
  </book>
</bookstore>

위의 XML에서 <title> 요소는 <book> 요소의 첫 번째 자식 노드이고, <ISBN> 요소는 <book> 요소의 마지막 자식 노드입니다.

또한, <book> 요소는 <title>, <author>, <year>, <press>, <price> 및 <ISBN> 요소의 부모 노드입니다.