Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
The Aspose.Words objektový Model dokumentu (DOM) je reprezentace v paměti a Word dokument. Aspose.Words DOM umožňuje programově číst, manipulovat a upravovat obsah a formátování Word dokumentu.
Tato část popisuje hlavní třídy Aspose.Words DOM a jejich vztahy. Pomocí tříd Aspose.Words DOM můžete získat programový přístup k prvkům dokumentu a formátování.
Když je dokument načten do Aspose.Words DOM, pak je vytvořen strom objektů a různé typy prvků zdrojového dokumentu mají své vlastní objekty stromu DOM s různými vlastnostmi.
Když Aspose.Words přečte dokument Word do paměti, vytvoří objekty různých typů, které představují různé prvky dokumentu. Každý běh textu, odstavce, tabulky nebo oddílu je uzel a dokonce i samotný dokument je uzel. Aspose.Words definuje třídu pro každý typ uzlu dokumentu.
Strom dokumentů v Aspose.Words sleduje složený návrhový vzor:
Níže uvedený diagram ukazuje dědičnost mezi třídami uzlů modelu objektu dokumentu Aspose.Words (DOM). Názvy abstraktních tříd jsou kurzívou.
Node.
Podívejme se na příklad. Následující obrázek ukazuje Microsoft Word dokument s různými typy obsahu.
Při čtení výše uvedeného dokumentu do Aspose.Words DOM se vytvoří strom objektů, jak je znázorněno na schématu níže.
Document, Section, Paragraph, Table, Shape, Run, a všechny ostatní elipsy na diagramu jsou objekty Aspose.Words, které představují prvky dokumentu Word.
Node typAčkoli třída Node je dostatečná k tomu, aby od sebe odlišila různé uzly, Aspose.Words poskytuje výčet NodeType pro zjednodušení některých úkolů API, jako je výběr uzlů konkrétního typu.
Typ každého uzlu lze získat pomocí vlastnosti NodeType. Tato vlastnost vrací hodnotu výčtu NodeType. Například uzel odstavce reprezentovaný třídou Paragraph vrací NodeType.Paragraph a uzel tabulky reprezentovaný třídou Table vrací NodeType.Table.
Následující příklad ukazuje, jak získat typ uzlu pomocí výčtu NodeType:
Aspose.Words představuje dokument jako strom uzlů, který umožňuje navigaci mezi uzly. Tato část popisuje, jak prozkoumat a procházet strom dokumentů v Aspose.Words.
Když otevřete ukázkový dokument prezentovaný dříve v Průzkumníku dokumentů, strom uzlů se zobrazí přesně tak, jak je znázorněn v Aspose.Words.
Uzly ve stromu mají mezi sebou vztahy:
Uzly, které mohou obsahovat další uzly, pocházejí z třídy CompositeNode a všechny uzly nakonec pocházejí z třídy Node. Tyto dvě základní třídy poskytují běžné metody a vlastnosti pro navigaci a modifikaci stromové struktury.
Následující UML objektový diagram zobrazuje několik uzlů vzorového dokumentu a jejich vzájemné vztahy prostřednictvím vlastností nadřazených, podřízených a sourozenců:
Uzel vždy patří ke konkrétnímu dokumentu, i když byl právě vytvořen nebo odstraněn ze stromu, protože důležité struktury pro celý dokument, jako jsou styly a seznamy, jsou uloženy v uzlu Document. Například není možné mít Paragraph bez Document, protože každý odstavec má přiřazený styl, který je globálně definován pro dokument. Toto pravidlo se používá při vytváření nových uzlů. Přidání nového Paragraph přímo do DOM vyžaduje objekt dokumentu předaný konstruktoru.
Při vytváření nového odstavce pomocí DocumentBuilder má builder vždy třídu Document propojenou pomocí vlastnosti DocumentBuilder.Document.
Následující příklad kódu ukazuje, že při vytváření libovolného uzlu je vždy definován dokument, který bude uzel vlastnit:
Každý uzel má rodiče určeného vlastností ParentNode. Uzel nemá žádný nadřazený uzel, to znamená, že ParentNode je null, v následujících případech:
Uzel můžete odebrat z jeho rodiče voláním metody Remove.Následující příklad kódu ukazuje, jak přistupovat k nadřazenému uzlu:
Nejúčinnější způsob přístupu k podřízeným uzlům CompositeNode je pomocí vlastností FirstChild a LastChild, které vracejí první a poslední podřízený uzel. Pokud nejsou žádné podřízené uzly, vrátí tyto vlastnosti null.
CompositeNode
Pokud uzel nemá žádné dítě, vrátí vlastnost ChildNodes prázdnou kolekci. Pomocí vlastnosti HasChildNodes můžete zkontrolovat, zda CompositeNode obsahuje nějaké podřízené uzly.
Následující příklad kódu ukazuje, jak vyjmenovat bezprostřední podřízené uzly CompositeNode pomocí výčtu poskytnutého kolekcí ChildNodes:
Následující příklad kódu ukazuje, jak vyjmenovat okamžité podřízené uzly CompositeNode pomocí indexovaného přístupu:
Uzel, který bezprostředně předchází nebo následuje po konkrétním uzlu, můžete získat pomocí vlastností PreviousSibling a NextSibling. Pokud je uzel posledním potomkem svého rodiče, pak je vlastnost NextSibling null. Naopak, pokud je uzel prvním potomkem svého rodiče, vlastnost PreviousSibling je null.
Následující příklad kódu ukazuje, jak efektivně navštívit všechny přímé a nepřímé podřízené uzly složeného uzlu:
Zatím jsme diskutovali o vlastnostech, které vracejí jeden ze základních typů - Node nebo CompositeNode. Někdy však existují situace, kdy možná budete muset přenést hodnoty do konkrétní třídy uzlů, například Run nebo Paragraph. To znamená, že při práci s Aspose.Words DOM, který je složený, se nemůžete úplně zbavit odlévání.
Aby se snížila potřeba odlévání, většina tříd Aspose.Words poskytuje vlastnosti a kolekce, které poskytují silně napsaný přístup. Existují tři základní vzory typovaného přístupu:
Zadané vlastnosti jsou pouze užitečné zkratky, které někdy poskytují snadnější přístup než obecné vlastnosti zděděné z Node.ParentNode a CompositeNode.FirstChild.
Následující příklad kódu ukazuje, jak používat zadané vlastnosti pro přístup k uzlům stromu dokumentů:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.