Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
The Aspose.Words Document Object Model (DOM) je in-paměti zastoupení dokumentu Word. The Aspose.Words DOM umožňuje programově číst, manipulovat a upravovat obsah a formátování dokumentu Word.
Tento oddíl popisuje hlavní třídy Aspose.Words DOM a jejich vztahy. Použitím Aspose.Words DOM třídy, můžete získat programový přístup k prvkům dokumentu a formátování.
Při čtení dokumentu do Aspose.Words DOM, pak je postaven strom objektů a různé typy prvků zdrojového dokumentu mají vlastní DOM objekty stromu s různými vlastnostmi.
Kdy? Aspose.Words čte dokument Word do paměti, vytváří objekty různých typů, které představují různé prvky dokumentu. Každý běh textu, odstavec, tabulka nebo sekce je uzel, a dokonce i samotný dokument je uzel. Aspose.Words definuje třídu pro každý typ uzel dokumentu.
Strom dokumentu Aspose.Words následuje vzor Kompozitního návrhu:
Níže uvedený diagram ukazuje dědictví mezi třídami uzlů Aspose.Words Document Object Model (DOM). Jména abstraktních tříd jsou v kurzívě.
Node třída.
Podívejme se na příklad. Následující obrázek ukazuje Microsoft Word dokument s různými druhy obsahu.
Při čtení výše uvedeného dokumentu do Aspose.Words DOM, je vytvořen strom objektů, jak ukazuje schéma níže.
Document, Section, Paragraph, Table, Shape, Run, a všechny ostatní elipsy na diagramu jsou Aspose.Words předměty, které představují prvky dokumentu Word.
Node TypI když Node třída stačí k rozlišení různých uzlů od sebe, Aspose.Words poskytuje NodeType počet pro zjednodušení některých API úkoly, například výběr uzlů konkrétního typu.
Typ každého uzlu lze získat pomocí NodeType majetek. Tato vlastnost vrací NodeType hodnota výčtu. Například odstavec uzel zastoupený Paragraph třída vrací NodeType.Paragraph, a stolní uzel zastoupený Table třída vrací NodeType.Table.
Následující příklad ukazuje, jak získat typ uzel pomocí NodeType číslice:
Aspose.Words představuje dokument jako uzel stromu, který vám umožní navigaci mezi uzly. Tato sekce popisuje, jak prozkoumat a procházet strom dokumentů v Aspose.Words.
Když otevřete vzorový dokument, který byl předložen dříve, v dokumentu Explorer, uzel se objeví přesně tak, jak je zastoupen v Aspose.Words.
Uzely na stromě mezi nimi mají vztah:
Uzely, které mohou obsahovat jiné uzly odvozeny z CompositeNode třída, a všechny uzly nakonec vyplývá z Node třída. Tyto dvě základní třídy poskytují společné metody a vlastnosti pro navigaci a modifikaci struktury stromu.
Následující schéma UML objektu zobrazuje několik uzlů výběrového dokumentu a jejich vzájemné vztahy prostřednictvím vlastností rodičů, dětí a sourozenců:
Uzel vždy patří k určitému dokumentu, i když byl jen vytvořen nebo odstraněn ze stromu, protože životně důležité struktury pro dokument, jako jsou styly a seznamy jsou uloženy v Document Uzel. Například, není možné mít Paragraph bez a Document protože každý odstavec má přiřazený styl, který je pro dokument definován globálně. 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ředávané konstruktorovi.
Při vytváření nového odstavce DocumentBuilder, Stavitel má vždy Document třída spojená s ní prostřednictvím DocumentBuilder.Document majetek.
Následující příklad kódu ukazuje, že při vytváření jakéhokoliv uzlu je vždy definován dokument, který bude vlastnit uzel:
Každý uzel má rodiče určené ParentNode majetek. Uzel nemá rodičovský uzel. ParentNode je nulová, v těchto případech:
Můžete odstranit uzel z jeho rodiče voláním Remove metoda. Následující příklad kódu ukazuje, jak přistupovat k mateřskému uzlu:
Nejúčinnější způsob, jak se dostat do dětských uzlů CompositeNode je přes FirstChild a LastChild vlastnosti, které vrátí první a poslední dětské uzly, resp. Pokud neexistují dětské uzly, tyto vlastnosti se vrátí null.
CompositeNode také poskytuje ChildNodes sběr umožňující indexovaný nebo číselný přístup do dětských uzlů. The ChildNodes vlastnost je živou sbírkou uzlů, což znamená, že kdykoli se dokument změní, jako je například když jsou uzly odstraněny nebo přidány, ChildNodes sběr je automaticky aktualizován.
Pokud uzel nemá dítě, pak ChildNodes nemovitost vrací prázdnou sbírku. Můžete zkontrolovat, zda CompositeNode obsahuje jakékoli dětské uzliny pomocí HasChildNodes majetek.
Následující příklad kódu ukazuje, jak vyjmenovat okamžité dětské uzly CompositeNode pomocí čitatele poskytnutého ChildNodes sběr:
Následující příklad kódu ukazuje, jak vyjmenovat okamžité dětské uzly CompositeNode pomocí indexovaného přístupu:
Můžete získat uzel, který okamžitě předchází nebo následuje konkrétní uzel pomocí PreviousSibling a NextSibling vlastnosti, resp. Pokud uzel je poslední dítě svého rodiče, pak NextSibling majetek je null. Naopak, pokud je uzel prvním dítětem jeho rodiče, PreviousSibling majetek je null.
Následující příklad kódu ukazuje, jak efektivně navštívit všechny přímé a nepřímé dětské uzly kompozitního uzlu:
Doposud jsme diskutovali o vlastnostech, které vrací jeden ze základních typů Node nebo CompositeNode. Ale někdy jsou situace, kdy byste mohli hodit hodnoty do určité třídy uzlů, jako například Run nebo Paragraph. To znamená, že nemůžete zcela uniknout od castingu při práci s Aspose.Words DOM, což je složené.
Aby se snížila potřeba odlitků, většina Aspose.Words třídy poskytují vlastnosti a sbírky, které poskytují silně-typed přístup. Existují tři základní vzorce napsaného přístupu:
Typované vlastnosti jsou pouze užitečné zkratky, které někdy poskytují jednodušší přístup než obecné vlastnosti zděděné Node.ParentNode a CompositeNode.FirstChild.
Následující příklad kódu ukazuje, jak používat zadané vlastnosti pro přístup do uzlů stromu dokumentu:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.