NodeCollection

NodeCollection class

Représente une collection de nœuds d’un type spécifique.

Pour en savoir plus, visitez leModèle objet de document (DOM) Aspose.Words article documentaire.

public class NodeCollection : IEnumerable<Node>

Propriétés

NomLa description
Count { get; }Obtient le nombre de nœuds dans la collection.
Item { get; }Récupère un nœud à l’index donné.

Méthodes

NomLa description
Add(Node)Ajoute un nœud à la fin de la collection.
Clear()Supprime tous les nœuds de cette collection et du document.
Contains(Node)Détermine si un nœud fait partie de la collection.
GetEnumerator()Fournit une simple itération de style “foreach” sur la collection de nœuds.
IndexOf(Node)Renvoie l’index de base zéro du nœud spécifié.
Insert(int, Node)Insère un nœud dans la collection à l’index spécifié.
Remove(Node)Supprime le nœud de la collection et du document.
RemoveAt(int)Supprime le nœud à l’index spécifié de la collection et du document.
ToArray()Copie tous les nœuds de la collection vers un nouveau tableau de nœuds.

Remarques

NodeCollection ne possède pas les nœuds qu’il contient, il s’agit simplement d’une sélection de nodes du type spécifié, mais les nœuds sont stockés dans l’arborescence sous leurs nœuds parents respectifs.

NodeCollectionprend en charge l’accès indexé, l’itération et fournit des méthodes d’ajout et de suppression.

LeNodeCollection la collection est “live”, c’est-à-dire que les modifications apportées aux enfants du nœud object à partir duquel elle a été créée sont immédiatement reflétées dans les nœuds renvoyés par leNodeCollection Propriétés et méthodes .

NodeCollection est renvoyé parGetChildNodes et sert également de classe de base pour les collections de nœuds typés telles queSectionCollection , ParagraphCollection etc.

NodeCollection peut être “plat” et contenir uniquement les enfants immédiats du nœud à partir duquel il a été créé , ou il peut être “profond” et contenir tous les enfants descendants.

Exemples

Montre comment remplacer toutes les formes de zone de texte par des formes d’image.

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");

Voir également