NodeRemove Method |
Namespace: Aspose.Words
// In this example we remove tables from a section body // Get the section that we want to work on Section section = doc.Sections[0]; Body body = section.Body; // Select the first child node in the body Node curNode = body.FirstChild; while (curNode != null) { // Save the pointer to the next sibling node because if the current // node is removed from the parent in the next step, we will have // no way of finding the next node to continue the loop Node nextNode = curNode.NextSibling; // A section body can contain Paragraph and Table nodes // If the node is a Table, remove it from the parent if (curNode.NodeType.Equals(NodeType.Table)) curNode.Remove(); // Continue going through child nodes until null (no more siblings) is reached curNode = nextNode; }
Document doc = new Document(MyDir + "Images.docx"); Assert.AreEqual(10, doc.GetChildNodes(NodeType.Shape, true).Count); // Here we get all shapes from the document node, but you can do this for any smaller // node too, for example delete shapes from a single section or a paragraph NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true); // We cannot delete shape nodes while we enumerate through the collection // One solution is to add nodes that we want to delete to a temporary array and delete afterwards ArrayList shapesToDelete = new ArrayList(); foreach (Shape shape in shapes.OfType<Shape>()) { // Several shape types can have an image including image shapes and OLE objects if (shape.HasImage) shapesToDelete.Add(shape); } // Now we can delete shapes foreach (Shape shape in shapesToDelete) shape.Remove(); Assert.AreEqual(1, doc.GetChildNodes(NodeType.Shape, true).Count); doc.Save(ArtifactsDir + "Image.DeleteAllImages.docx");