CompositeNode

CompositeNode class

Diğer düğümleri içerebilen düğümler için temel sınıf.

Daha fazlasını öğrenmek için şu adresi ziyaret edin:Aspose.Words Belge Nesne Modeli (DOM) dokümantasyon makalesi.

public abstract class CompositeNode : Node, IEnumerable<Node>, IXPathNavigable

Özellikleri

İsimTanım
Count { get; }Bu düğümün doğrudan alt öğelerinin sayısını alır.
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.
FirstChild { get; }Düğümün ilk çocuğunu alır.
HasChildNodes { get; }İadelerdoğru bu düğümün herhangi bir alt düğümü varsa.
override IsComposite { get; }İadelerdoğru çünkü bu düğüm alt düğümlere sahip olabilir.
LastChild { get; }Düğümün son çocuğunu alır.
NextSibling { get; }Bu düğümden hemen sonra gelen düğümü alır.
abstract NodeType { get; }Bu düğümün türünü alır.
ParentNode { get; }Bu düğümün doğrudan ebeveynini alır.
PreviousSibling { get; }Bu düğümden hemen önceki düğümü alır.
Range { get; }Bir değeri döndürürRange Bu düğümde bulunan bir belgenin bölümünü temsil eden nesne.

yöntemler

İsimTanım
abstract Accept(DocumentVisitor)Ziyaretçi kabul eder.
AppendChild(Node)Belirtilen düğümü, bu düğüm için alt düğümler listesinin sonuna ekler.
Clone(bool)Düğümün bir kopyasını oluşturur.
CreateNavigator()Düğümlerin arasında geçiş yapmak ve düğümleri okumak için kullanılabilecek gezgini oluşturur.
GetAncestor(NodeType)Belirtilenin ilk atayı alırNodeType .
GetAncestor(Type)Belirtilen nesne türünün ilk atayı alır.
GetChild(NodeType, int, bool)Belirtilen türle eşleşen N’inci alt düğümü döndürür.
GetChildNodes(NodeType, bool)Belirtilen türle eşleşen alt düğümlerin canlı bir koleksiyonunu döndürür.
GetEnumerator()Bu düğümün alt düğümleri üzerindeki her stil yinelemesi için destek sağlar.
override GetText()Bu düğümün ve tüm alt öğelerinin metnini alır.
IndexOf(Node)Alt düğüm dizisinde belirtilen alt düğümün dizinini döndürür.
InsertAfter(NodeNode)Belirtilen düğümü, belirtilen referans düğümünün hemen sonrasına ekler.
InsertBefore(NodeNode)Belirtilen düğümü, belirtilen referans düğümünün hemen öncesine ekler.
NextPreOrder(Node)Ön sipariş ağaç geçiş algoritmasına göre sonraki düğümü alır.
PrependChild(Node)Belirtilen düğümü, bu düğüm için alt düğümler listesinin başına ekler.
PreviousPreOrder(Node)Ön sipariş ağaç geçiş algoritmasına göre önceki düğümü alır.
Remove()Kendini üst öğeden kaldırır.
RemoveAllChildren()Geçerli düğümün tüm alt düğümlerini kaldırır.
RemoveChild(Node)Belirtilen alt düğümü kaldırır.
RemoveSmartTags()Tümünü kaldırırSmartTagGeçerli düğümün alt düğümleri.
SelectNodes(string)XPath ifadesiyle eşleşen düğümlerin listesini seçer.
SelectSingleNode(string)İlkini seçerNode XPath ifadesiyle eşleşen.
ToString(SaveFormat)Düğümün içeriğini belirtilen formatta bir dizeye aktarır.
ToString(SaveOptions)Belirtilen kaydetme seçeneklerini kullanarak düğümün içeriğini bir dizeye aktarır.

Notlar

Bir belge, DOM veya XmlDocument’e benzer şekilde bir düğüm ağacı olarak temsil edilir.

Daha fazla bilgi için Bileşik tasarım desenine bakın.

CompositeNode sınıf:

  • Alt düğümlere erişim sağlar.
  • Çocuk ekleme ve çıkarma gibi Bileşik işlemleri uygular.
  • XPath navigasyonu için yöntemler sağlar.

Örnekler

Bileşik bir düğümün alt düğüm koleksiyonunda nasıl geçiş yapılacağını gösterir.

Document doc = new Document();

// Bu belgenin ilk paragrafına alt düğümler olarak iki işlem ve bir şekil 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'in bir çıktı dosyasına kaydedilmediğini ve yalnızca düğümün ömrü boyunca mevcut olduğunu unutmayın.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

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

// Paragrafın yakın alt öğelerinin toplanması yoluyla yineleme yapın,
// ve içinde bulduğumuz tüm sayıları veya şekilleri yazdırıyoruz.
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