Node

Node class

Bir Word belgesinin tüm düğümleri için temel sınıf.

Daha fazla bilgi edinmek için şu adresi ziyaret edin:Aspose.Words Belge Nesne Modeli (DOM) belgeleme makalesi.

public abstract class Node

Özellikleri

İsimTanım
CustomNodeId { get; set; }Özel düğüm tanımlayıcısını belirtir.
virtual Document { get; }Bu düğümün ait olduğu belgeyi alır.
virtual IsComposite { get; }Geri Döndürürdoğru eğer bu düğüm diğer düğümleri içerebiliyorsa.
NextSibling { get; }Bu düğümü hemen takip eden düğümü alır.
abstract NodeType { get; }Bu düğümün türünü alır.
ParentNode { get; }Bu düğümün en yakın üst düğümünü alır.
PreviousSibling { get; }Bu düğümden hemen önceki düğümü alır.
Range { get; }BirRangebu düğümde bulunan bir belgenin bölümünü temsil eden nesne.

yöntemler

İsimTanım
abstract Accept(DocumentVisitor)Bir ziyaretçiyi kabul eder.
Clone(bool)Düğümün bir kopyasını oluşturur.
GetAncestor(NodeType)Belirtilenin ilk atasını alırNodeType .
GetAncestor(Type)Belirtilen nesne türünün ilk atasını alır.
virtual GetText()Bu düğümün ve tüm alt düğümlerinin metnini alır.
NextPreOrder(Node)Ön sipariş ağacı geçiş algoritmasına göre bir sonraki düğümü alır.
PreviousPreOrder(Node)Ön sipariş ağacı geçiş algoritmasına göre önceki düğümü alır.
Remove()Kendini ana öğeden kaldırır.
ToString(SaveFormat)Düğümün içeriğini belirtilen biçimde bir dizeye aktarır.
ToString(SaveOptions)Belirtilen kaydetme seçeneklerini kullanarak düğümün içeriğini bir dizeye aktarır.
static NodeTypeToString(NodeType)Bir düğüm türü enum değerini kullanıcı dostu bir dizeye dönüştüren bir yardımcı yöntem.

Notlar

Bir belge, DOM veya XmlDocument’a benzer şekilde düğümlerden oluşan bir ağaç olarak temsil edilir.

Daha fazla bilgi için Composite tasarım desenine bakın.

TheNode sınıf:

  • Çocuk düğüm arayüzünü tanımlar.
  • Düğümleri ziyaret etmek için arayüzü tanımlar.
  • Varsayılan klonlama yeteneği sağlar.
  • Üst düğüm ve sahip belge mekanizmalarını uygular.
  • Kardeş düğümlere erişimi uygular.

Örnekler

Belirli bir türdeki tüm alt düğümlerin bileşik bir düğümden nasıl kaldırılacağını gösterir.

Document doc = new Document(MyDir + "Tables.docx");

Assert.AreEqual(2, doc.GetChildNodes(NodeType.Table, true).Count);

Node curNode = doc.FirstSection.Body.FirstChild;

while (curNode != null)
{
    // Bu düğümü sildikten sonra ona geçmek istersek, bir sonraki kardeş düğümü bir değişken olarak kaydet.
    Node nextNode = curNode.NextSibling;

    // Bir bölüm gövdesi Paragraf ve Tablo düğümlerini içerebilir.
    // Eğer düğüm bir Tablo ise, onu ana düğümden kaldır.
    if (curNode.NodeType == NodeType.Table)
        curNode.Remove();

    curNode = nextNode;
}

Assert.AreEqual(0, doc.GetChildNodes(NodeType.Table, true).Count);

Bileşik bir düğümün nasıl klonlanacağını gösterir.

Document doc = new Document();
Paragraph para = doc.FirstSection.Body.FirstParagraph;
para.AppendChild(new Run(doc, "Hello world!"));

// Aşağıda bir bileşik düğümü klonlamanın iki yolu bulunmaktadır.
// 1 - Bir düğümün klonunu oluştur ve ayrıca onun her bir alt düğümünün bir klonunu oluştur.
Node cloneWithChildren = para.Clone(true);

Assert.IsTrue(((CompositeNode)cloneWithChildren).HasChildNodes);
Assert.AreEqual("Hello world!", cloneWithChildren.GetText().Trim());

// 2 - Herhangi bir çocuğu olmadan sadece kendi başına bir düğümün klonunu oluştur.
Node cloneWithoutChildren = para.Clone(false);

Assert.IsFalse(((CompositeNode)cloneWithoutChildren).HasChildNodes);
Assert.AreEqual(string.Empty, cloneWithoutChildren.GetText().Trim());

Bir bileşik düğümün alt düğüm koleksiyonunda nasıl dolaşılacağını gösterir.

Document doc = new Document();

// Bu belgenin ilk paragrafına iki çalışma ve bir şekil alt düğüm olarak ekleyin.
Paragraph paragraph = (Paragraph)doc.GetChild(NodeType.Paragraph, 0, true);
paragraph.AppendChild(new Run(doc, "Hello world! "));

Shape shape = new Shape(doc, ShapeType.Rectangle);
shape.Width = 200;
shape.Height = 200;
// 'CustomNodeId' öğesinin bir çıktı dosyasına kaydedilmediğini ve yalnızca düğümün yaşam süresi boyunca var olduğunu unutmayın.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

paragraph.AppendChild(new Run(doc, "Hello again!"));

// Paragrafın hemen altındaki alt öğelerin koleksiyonunda yineleme yapın,
// ve içinde bulduğumuz herhangi bir koşuyu veya şekli yazdırırız.
NodeCollection children = paragraph.GetChildNodes(NodeType.Any, false);

Assert.AreEqual(3, paragraph.GetChildNodes(NodeType.Any, false).Count);

foreach (Node child in children)
    switch (child.NodeType)
    {
        case NodeType.Run:
            Console.WriteLine("Run contents:");
            Console.WriteLine($"\t\"{child.GetText().Trim()}\"");
            break;
        case NodeType.Shape:
            Shape childShape = (Shape)child;
            Console.WriteLine("Shape:");
            Console.WriteLine($"\t{childShape.ShapeType}, {childShape.Width}x{childShape.Height}");
            break;
    }

Ayrıca bakınız