NodeCollection
NodeCollection class
Representerar en samling noder av en specifik typ.
För att lära dig mer, besökAspose.Words-dokumentobjektmodell (DOM) dokumentationsartikel.
public class NodeCollection : IEnumerable<Node>
Egenskaper
namn | Beskrivning |
---|---|
Count { get; } | Hämtar antalet noder i samlingen. |
Item { get; } | Hämtar en nod vid det angivna indexet. |
Metoder
namn | Beskrivning |
---|---|
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) | Avgör om en nod finns i samlingen. |
GetEnumerator() | Ger en enkel iteration i “foreach”-stil ö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 med noder. |
Anmärkningar
NodeCollection
äger inte de noder den innehåller, utan är bara ett urval av nodes av den angivna typen, men noderna lagras i trädet under sina respektive överordnade noder.
NodeCollection
stöder indexerad åtkomst, iteration och tillhandahåller metoder för att lägga till och ta bort.
DeNodeCollection
samlingen är “live”, dvs. ändringar i nodens underordnade objekt objekt som den skapades från återspeglas omedelbart i noderna som returneras avNodeCollection
egenskaper och metoder.
NodeCollection
returneras avGetChildNodes
och fungerar även som en basklass för typade nodsamlingar somSectionCollection
, ParagraphCollection
etc.
NodeCollection
kan vara “platt” och endast innehålla omedelbara underordnade noder till noden den skapades från, eller så kan den vara “djup” och innehålla alla underordnade noder.
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
- class Node
- namnutrymme Aspose.Words
- hopsättning Aspose.Words