Aspose.Words Document Object Model (DOM)

더 보기 Aspose.Words Document Object Model (주)DOM)는 Word 문서의 in-memory 표현입니다. 더 보기 Aspose.Words DOM 프로그래밍을 읽을 수 있고 조작하고 Word 문서의 내용과 형식을 수정합니다.

이 섹션은 메인 클래스의 설명 Aspose.Words DOM 그리고 그들의 관계. 자주 묻는 질문 Aspose.Words DOM 수업, 문서 요소 및 형식에 대한 programmatic 액세스를 얻을 수 있습니다.

문서 작성 개체 트리

문서가 읽을 때 Aspose.Words <span notrans="<span notrans=" DOM"="">· 그런 다음 오브젝트 트리는 소스 문서의 요소의 내장 및 다른 유형의 자체가 DOM 다양한 속성을 가진 나무 개체.

문서 노드 트리 구축

시간: Aspose.Words Word 문서를 메모리로 읽습니다. 다양한 문서 요소를 나타내는 다른 유형의 개체를 만듭니다. 각 텍스트, 단락, 테이블, 또는 섹션은 노드이며 문서 자체는 노드입니다. Aspose.Words 모든 문서 노드 유형의 클래스를 정의합니다.

문서 트리 Aspose.Words 합성 디자인 본을 따르십시오:

  • 모든 노드 클래스에서 궁극적으로 derive Node 클래스, 이는 기본 클래스에서 Aspose.Words Document Object Model·
  • 다른 노드를 포함 할 수있는 노드, 예를 들어, Section 또는 Paragraph, derive에서 CompositeNode 클래스, 에서 회전 derives에서 Node 수업.

아래에서 제공되는 다이어그램은 노드 클래스의 상속을 보여줍니다. Aspose.Words Document Object Model (주)DOM). 요약 클래스의 이름은 Italics입니다.

aspose-words-dom

예제를 살펴 보자. 뒤에 오는 이미지 쇼 Microsoft Word 다른 유형의 콘텐츠를 가진 문서.

document-example

위의 문서를 읽을 때 Aspose.Words DOM, 개체의 나무는 아래에 스키마에 표시된 것과 같이 창조됩니다.

document-example-dom

Document, Section, Paragraph, Table, Shape, Run, 그리고 도표에 다른 모든 ellipses는 입니다 Aspose.Words Word 문서의 요소를 나타내는 개체.

더 보기 Node 제품정보

그러나 Node 클래스는 서로 다른 노드를 구별하는 것이 충분합니다. Aspose.Words 제품정보 NodeType 몇몇을 간단하게 하기 위하여 enumeration API 특정 유형의 노드 선택과 같은 작업.

각 노드의 유형은 얻을 수 있습니다. NodeType 호텔 위치 이 속성은 반환 NodeType 공급 능력 예를 들어, 단락 노드는 Paragraph 클래스 반환 NodeType·Paragraph, 테이블 노드가 대표 Table 클래스 반환 NodeType·Table·

다음 예제는 노드 유형을 사용하는 방법을 보여줍니다. NodeType 공급 능력:

문서 트리

Aspose.Words 노드를 탐색할 수 있는 노드 트리로 문서를 나타냅니다. 이 섹션에서는 문서 트리를 탐색하고 탐색하는 방법을 설명합니다. Aspose.Words·

샘플 문서를 열 때, 이전에 발표 된 문서 탐색기에서 노드 트리는 그것이 나타내는 것처럼 정확히 나타납니다. Aspose.Words·

document-in-document-explorer

문서 노드 관계

나무의 노드는 그들 사이의 관계가 있습니다

  • 다른 노드를 포함하는 노드는 parent.
      • 부모 노드에 포함된 노드는 child. 동일한 부모의 자식 노드는 sibling 노드.
  • 한국어 root 노드는 항상 Document 노드.

다른 노드가 derive를 포함할 수 있는 노드 CompositeNode 클래스, 그리고 모든 노드 궁극적으로 derive에서 Node 수업. 이 두 가지 기본 클래스는 나무 구조 탐색 및 수정을위한 일반적인 방법 및 특성을 제공합니다.

다음 UML 객체 다이어그램은 샘플 문서의 여러 노드와 부모, 아이, sibling 속성을 통해 서로의 관계들을 보여줍니다

document-nodes-relationships

문서는 Node 소유자입니다

노드는 항상 특정 문서에 속하며, 트리에서 생성되거나 제거된 경우에도 스타일과 목록과 같은 중요한 문서 전체 구조가 저장되기 때문입니다. Document 노드. 예를 들어, 그것은 할 수 없습니다 Paragraph 없음 Document 각 단락은 글로벌 문서에 정의 된 형식을 가지고 있기 때문에. 이 규칙은 새로운 노드를 만들 때 사용됩니다. 새로운 추가 Paragraph 직접에 DOM 생성자에 전달된 문서 객체가 필요합니다.

새 단락을 만들 때 DocumentBuilder, 빌더는 항상 Document 그것을 통해서 연결되는 종류 DocumentBuilder.Document 호텔 위치

다음 코드 예제는 노드를 만들 때, 노드가 항상 정의된 문서는 다음과 같습니다

부모 노드

각 노드에는 지정된 부모가 있습니다. ParentNode 호텔 위치 노드에는 부모 노드가 없습니다. 즉, ParentNode null은 다음과 같은 경우입니다

      • 노드가 생성되고 아직 나무에 추가되지 않았습니다.
      • 노드는 나무에서 제거되었습니다.
      • 이것은 뿌리입니다. Document 항상 null 부모 노드가 있는 노드.

부모로부터 노드를 제거할 수 있습니다. Remove 방법. 다음 코드 예제는 부모 노드에 접근하는 방법을 보여줍니다

아이 노드

아이 노드에 액세스하는 가장 효율적인 방법 CompositeNode 을 통해 FirstChild · LastChild 첫 번째 및 마지막 아이 노드를 반환하는 속성. 아이 노드가 없다면, 이러한 속성 반환 null·

CompositeNode 또한 제공 ChildNodes 수집은 아이 노드에 대한 인덱스 또는 enumerated 접근을 가능하게 합니다. 더 보기 ChildNodes 속성은 노드가 제거되거나 추가될 때 문서가 변경될 때마다 노드의 라이브 컬렉션입니다. ChildNodes 수집은 자동으로 업데이트됩니다.

노드가 자식이 없다면, 그 다음 ChildNodes 속성은 빈 컬렉션을 반환합니다. 당신은 확인할 수 있습니다 CompositeNode 모든 아이 노드가 포함되어 있습니다. HasChildNodes 호텔 위치

다음 코드 예제는 즉각적인 아이 노드를 enumerate하는 방법을 보여줍니다. CompositeNode enumerator를 사용하여 ChildNodes 수집:

다음 코드 예제는 즉각적인 아이 노드를 enumerate하는 방법을 보여줍니다. CompositeNode 색인된 접근을 사용하여:

Sibling 노드

즉시 precedes 또는 특정 노드를 사용하여 노드를 얻을 수 있습니다 PreviousSibling · NextSibling 재산, 각각. 노드가 부모의 마지막 자녀라면 그 다음 NextSibling 호텔 위치 null· 반전적으로 노드가 부모의 첫 번째 아이라면, PreviousSibling 호텔 위치 null·

다음 코드 예제는 복합 노드의 모든 직접 및 간접 아이 노드를 효율적으로 방문하는 방법을 보여줍니다

자녀와 부모 노드에 대한 접근

지금까지, 우리는 기본 유형 중 하나를 돌려주는 속성을 논의했습니다. Node 또는 CompositeNode· 그러나 때로는 특정 노드 클래스에 값을 던져야 할 상황이 있습니다. Run 또는 Paragraph· 그것은, 당신은 완전히 주조에서 멀리 얻을 수 없습니다 Aspose.Words DOM, 합성물.

주물을 위한 필요를 감소시키기 위하여, 대부분 Aspose.Words 클래스는 강력한 접근을 제공하는 속성과 컬렉션을 제공합니다. 유형 접근의 3개의 기본적인 본이 있습니다:

Typed 속성은 때로는 유전 적 특성보다 쉽게 액세스 할 수있는 짧게 유용합니다. Node.ParentNode · CompositeNode.FirstChild·

다음 코드 예제는 문서 트리의 노드에 접근하기 위해 Typed 속성을 사용하는 방법을 보여줍니다