ImportNode
NodeImporter.ImportNode method
Bir belgedeki düğümü diğerine aktarır.
public Node ImportNode(Node srcNode, bool isImportChildren)
Parametre | Tip | Tanım |
---|---|---|
srcNode | Node | İçe aktarılacak düğüm. |
isImportChildren | Boolean | doğru tüm alt düğümleri yinelemeli olarak içe aktarmak için; aksi takdirde,YANLIŞ . |
Geri dönüş değeri
Klonlanmış, içe aktarılmış düğüm. Düğüm hedef belgeye aittir ancak üst öğesi yoktur.
Notlar
Bir düğümün içe aktarılması, içe aktarılan belgeye ait kaynak düğümün bir kopyasını oluşturur. Döndürülen düğümün üst öğesi yok. Kaynak düğüm değiştirilmez veya orijinal belgeden kaldırılmaz.
Başka bir belgedeki bir düğümün bu belgeye eklenmeden önce içe aktarılması gerekir. İçe aktarma sırasında, stillere ve listelere yapılan referanslar gibi belgeye özgü özellikler orijinalden içe aktarılan belgeye çevrilir . Düğüm içe aktarıldıktan sonra, kullanılarak belgedeki uygun yere eklenebilir.InsertBefore
veya InsertAfter
.
Kaynak düğüm zaten hedef belgeye aitse, kaynak düğümün derin clone ‘si oluşturulur.
Örnekler
Bir belgenin içeriğinin başka bir belgedeki yer imine nasıl ekleneceğini gösterir.
public void InsertAtBookmark()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.StartBookmark("InsertionPoint");
builder.Write("We will insert a document here: ");
builder.EndBookmark("InsertionPoint");
Document docToInsert = new Document();
builder = new DocumentBuilder(docToInsert);
builder.Write("Hello world!");
docToInsert.Save(ArtifactsDir + "NodeImporter.InsertAtMergeField.docx");
Bookmark bookmark = doc.Range.Bookmarks["InsertionPoint"];
InsertDocument(bookmark.BookmarkStart.ParentNode, docToInsert);
Assert.AreEqual("We will insert a document here: " +
"\rHello world!", doc.GetText().Trim());
}
/// <summary>
/// Belgenin içeriğini belirtilen düğümden sonra ekler.
/// </summary>
static void InsertDocument(Node insertionDestination, Document docToInsert)
{
if (insertionDestination.NodeType == NodeType.Paragraph || insertionDestination.NodeType == NodeType.Table)
{
CompositeNode destinationParent = insertionDestination.ParentNode;
NodeImporter importer =
new NodeImporter(docToInsert, insertionDestination.Document, ImportFormatMode.KeepSourceFormatting);
// Bölümün gövdesindeki tüm blok düzeyindeki düğümler arasında döngü yapın,
// sonra bir bölümün son boş paragrafı olmayan her düğümü kopyalayıp ekleyin.
foreach (Section srcSection in docToInsert.Sections.OfType<Section>())
foreach (Node srcNode in srcSection.Body)
{
if (srcNode.NodeType == NodeType.Paragraph)
{
Paragraph para = (Paragraph)srcNode;
if (para.IsEndOfSection && !para.HasChildNodes)
continue;
}
Node newNode = importer.ImportNode(srcNode, true);
destinationParent.InsertAfter(newNode, insertionDestination);
insertionDestination = newNode;
}
}
else
{
throw new ArgumentException("The destination node should be either a paragraph or table.");
}
}
Ayrıca bakınız
- class Node
- class NodeImporter
- ad alanı Aspose.Words
- toplantı Aspose.Words