NodeCollection
NodeCollection class
Rappresenta una raccolta di nodi di un tipo specifico.
Per saperne di più, visita ilModello oggetto documento Aspose.Words (DOM) articolo di documentazione.
public class NodeCollection : IEnumerable<Node>
Proprietà
Nome | Descrizione |
---|---|
Count { get; } | Ottiene il numero di nodi nella raccolta. |
Item { get; } | Recupera un nodo all’indice specificato. |
Metodi
Nome | Descrizione |
---|---|
Add(Node) | Aggiunge un nodo alla fine della raccolta. |
Clear() | Rimuove tutti i nodi da questa raccolta e dal documento. |
Contains(Node) | Determina se un nodo è nella raccolta. |
GetEnumerator() | Fornisce una semplice iterazione di stile “foreach” sulla raccolta di nodi. |
IndexOf(Node) | Restituisce l’indice in base zero del nodo specificato. |
Insert(int, Node) | Inserisce un nodo nella raccolta in corrispondenza dell’indice specificato. |
Remove(Node) | Rimuove il nodo dalla raccolta e dal documento. |
RemoveAt(int) | Rimuove il nodo all’indice specificato dalla raccolta e dal documento. |
ToArray() | Copia tutti i nodi dalla raccolta in un nuovo array di nodi. |
Osservazioni
NodeCollection
non possiede i nodi che contiene, piuttosto, è solo una selezione di nodes del tipo specificato, ma i nodi sono memorizzati nell’albero sotto i rispettivi nodi principali.
NodeCollection
supporta l’accesso indicizzato, l’iterazione e fornisce metodi di aggiunta e rimozione.
ILNodeCollection
la raccolta è “live”, ovvero le modifiche ai figli del nodo object da cui è stata creata si riflettono immediatamente nei nodi restituiti dalNodeCollection
Proprietà e metodi .
NodeCollection
viene restituito daGetChildNodes
e funge anche da classe base per raccolte di nodi tipizzati comeSectionCollection
, ParagraphCollection
eccetera.
NodeCollection
può essere “piatto” e contenere solo i figli immediati del nodo da cui è stato creato , oppure può essere “profondo” e contenere tutti i figli discendenti.
Esempi
Mostra come sostituire tutte le forme delle caselle di testo con forme di immagine.
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");
Guarda anche
- class Node
- spazio dei nomi Aspose.Words
- assemblea Aspose.Words