NodeCollection

NodeCollection class

Representerar en samling noder av en specifik typ.

För att lära dig mer, besökAspose.Words Document Object Model (DOM) dokumentationsartikel.

public class NodeCollection : IEnumerable<Node>

Egenskaper

namnBeskrivning
Count { get; }Hämtar antalet noder i samlingen.
Item { get; }Hämtar en nod vid det givna indexet.

Metoder

namnBeskrivning
Add(Node)Lägger till en nod i slutet av samlingen.
Clear()Tar bort alla noder från den här samlingen och från dokumentet.
Contains(Node)Bestämmer om en nod finns i samlingen.
GetEnumerator()Ger en enkel “foreach” stil iteration över samlingen av noder.
IndexOf(Node)Returnerar det nollbaserade indexet för den angivna noden.
Insert(int, Node)Infogar en nod i samlingen vid det angivna indexet.
Remove(Node)Tar bort noden från samlingen och från dokumentet.
RemoveAt(int)Tar bort noden vid det angivna indexet från samlingen och från dokumentet.
ToArray()Kopierar alla noder från samlingen till en ny array av noder.

Anmärkningar

NodeCollection äger inte noderna den innehåller, snarare är det bara ett urval av nodes av den angivna typen, men noderna lagras i trädet under sina respektive överordnade noder.

NodeCollectionstöder indexerad åtkomst, iteration och tillhandahåller metoder för att lägga till och ta bort.

DeNodeCollection samlingen är “live”, dvs. ändringar av barnen till noden object som den skapades från återspeglas omedelbart i de noder som returneras avNodeCollection egenskaper och metoder.

NodeCollection returneras avGetChildNodes och fungerar även som en basklass för typade nodsamlingar som t.exSectionCollection , ParagraphCollection etc.

NodeCollection kan vara “platt” och endast innehålla omedelbara underordnade av noden den skapades från, eller så kan den vara “djup” och innehålla alla underordnade underordnade.

Exempel

Visar hur man ersätter alla textruteformer med bildformer.

Document doc = new Document(MyDir + "Textboxes in drawing canvas.docx");

Shape[] shapes = doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().ToArray();

Assert.AreEqual(3, shapes.Count(s => s.ShapeType == ShapeType.TextBox));
Assert.AreEqual(1, shapes.Count(s => s.ShapeType == ShapeType.Image));

foreach (Shape shape in shapes)
{
    if (shape.ShapeType == ShapeType.TextBox)
    {
        Shape replacementShape = new Shape(doc, ShapeType.Image);
        replacementShape.ImageData.SetImage(ImageDir + "Logo.jpg");
        replacementShape.Left = shape.Left;
        replacementShape.Top = shape.Top;
        replacementShape.Width = shape.Width;
        replacementShape.Height = shape.Height;
        replacementShape.RelativeHorizontalPosition = shape.RelativeHorizontalPosition;
        replacementShape.RelativeVerticalPosition = shape.RelativeVerticalPosition;
        replacementShape.HorizontalAlignment = shape.HorizontalAlignment;
        replacementShape.VerticalAlignment = shape.VerticalAlignment;
        replacementShape.WrapType = shape.WrapType;
        replacementShape.WrapSide = shape.WrapSide;

        shape.ParentNode.InsertAfter(replacementShape, shape);
        shape.Remove();
    }
}

shapes = doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().ToArray();

Assert.AreEqual(0, shapes.Count(s => s.ShapeType == ShapeType.TextBox));
Assert.AreEqual(4, shapes.Count(s => s.ShapeType == ShapeType.Image));

doc.Save(ArtifactsDir + "Shape.ReplaceTextboxesWithImages.docx");

Se även