Node
Innehåll
[
Dölj
]Node class
Basklass för alla noder i ett Word-dokument.
För att lära dig mer, besökAspose.Words Document Object Model (DOM) dokumentationsartikel.
public abstract class Node
Egenskaper
namn | Beskrivning |
---|---|
CustomNodeId { get; set; } | Anger anpassad nodidentifierare. |
virtual Document { get; } | Hämtar dokumentet som denna nod tillhör. |
virtual IsComposite { get; } | ReturnerarSann om denna nod kan innehålla andra noder. |
NextSibling { get; } | Hämtar noden omedelbart efter denna nod. |
abstract NodeType { get; } | Hämtar typen av denna nod. |
ParentNode { get; } | Hämtar den omedelbara föräldern till denna nod. |
PreviousSibling { get; } | Hämtar noden omedelbart före denna nod. |
Range { get; } | Returnerar enRange objekt som representerar den del av ett dokument som finns i denna nod. |
Metoder
namn | Beskrivning |
---|---|
abstract Accept(DocumentVisitor) | Accepterar en besökare. |
Clone(bool) | Skapar en dubblett av noden. |
GetAncestor(NodeType) | Hämtar den första förfadern till den angivnaNodeType . |
GetAncestor(Type) | Hämtar den första förfadern till den angivna objekttypen. |
virtual GetText() | Hämtar texten för denna nod och alla dess underordnade. |
NextPreOrder(Node) | Hämtar nästa nod enligt algoritmen för förbeställningsträdet. |
PreviousPreOrder(Node) | Hämtar föregående nod enligt algoritmen för förbeställningsträdet. |
Remove() | Tar bort sig själv från föräldern. |
ToString(SaveFormat) | Exporterar innehållet i noden till en sträng i angivet format. |
ToString(SaveOptions) | Exporterar innehållet i noden till en sträng med de angivna sparalternativen. |
static NodeTypeToString(NodeType) | En verktygsmetod som omvandlar ett nodtyps enumvärde till en användarvänlig sträng. |
Anmärkningar
Ett dokument representeras som ett träd av noder, liknande DOM eller XmlDocument.
För mer information se Composite design mönster.
DeNode
klass:
- Definierar gränssnittet för barnnoden.
- Definierar gränssnittet för besökande noder.
- Ger standard kloningsmöjlighet.
- Implementerar mekanismer för överordnad nod och ägardokument.
- Implementerar åtkomst till syskonnoder.
Exempel
Visar hur man tar bort alla underordnade noder av en specifik typ från en sammansatt nod.
Document doc = new Document(MyDir + "Tables.docx");
Assert.AreEqual(2, doc.GetChildNodes(NodeType.Table, true).Count);
Node curNode = doc.FirstSection.Body.FirstChild;
while (curNode != null)
{
// Spara nästa syskonnod som en variabel ifall vi vill flytta till den efter att ha tagit bort denna nod.
Node nextNode = curNode.NextSibling;
// En sektionskropp kan innehålla paragraf- och tabellnoder.
// Om noden är en tabell, ta bort den från den överordnade.
if (curNode.NodeType == NodeType.Table)
curNode.Remove();
curNode = nextNode;
}
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Table, true).Count);
Visar hur man klona en sammansatt nod.
Document doc = new Document();
Paragraph para = doc.FirstSection.Body.FirstParagraph;
para.AppendChild(new Run(doc, "Hello world!"));
// Nedan finns två sätt att klona en sammansatt nod.
// 1 - Skapa en klon av en nod, och skapa en klon av var och en av dess undernoder.
Node cloneWithChildren = para.Clone(true);
Assert.IsTrue(((CompositeNode)cloneWithChildren).HasChildNodes);
Assert.AreEqual("Hello world!", cloneWithChildren.GetText().Trim());
// 2 - Skapa en klon av en nod helt av sig själv utan några barn.
Node cloneWithoutChildren = para.Clone(false);
Assert.IsFalse(((CompositeNode)cloneWithoutChildren).HasChildNodes);
Assert.AreEqual(string.Empty, cloneWithoutChildren.GetText().Trim());
Visar hur man går igenom en sammansatt nods samling av undernoder.
Document doc = new Document();
// Lägg till två körningar och en form som underordnade noder i det första stycket i detta dokument.
Paragraph paragraph = (Paragraph)doc.GetChild(NodeType.Paragraph, 0, true);
paragraph.AppendChild(new Run(doc, "Hello world! "));
Shape shape = new Shape(doc, ShapeType.Rectangle);
shape.Width = 200;
shape.Height = 200;
// Observera att 'CustomNodeId' inte sparas i en utdatafil och endast existerar under nodens livstid.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);
paragraph.AppendChild(new Run(doc, "Hello again!"));
// Iterera genom styckets samling av närmaste barn,
// och skriv ut alla körningar eller former som vi hittar inom.
NodeCollection children = paragraph.GetChildNodes(NodeType.Any, false);
Assert.AreEqual(3, paragraph.GetChildNodes(NodeType.Any, false).Count);
foreach (Node child in children)
switch (child.NodeType)
{
case NodeType.Run:
Console.WriteLine("Run contents:");
Console.WriteLine($"\t\"{child.GetText().Trim()}\"");
break;
case NodeType.Shape:
Shape childShape = (Shape)child;
Console.WriteLine("Shape:");
Console.WriteLine($"\t{childShape.ShapeType}, {childShape.Width}x{childShape.Height}");
break;
}
Se även
- namnutrymme Aspose.Words
- hopsättning Aspose.Words