CompositeNode

CompositeNode class

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

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

Özellikleri

İsim Tanım
ChildNodes { get; } Bu düğümün tüm acil alt düğümlerini alır.
Count { get; } Bu düğümün acil 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 alt öğesini alır.
HasChildNodes { get; } Bu düğümün herhangi bir alt düğümü varsa doğru döndürür.
override IsComposite { get; } Bu düğümün alt düğümleri olabileceğinden true değerini döndürür.
LastChild { get; } Düğümün son alt öğesini alır.
NextSibling { get; } Bu düğümden hemen sonraki düğümü alır.
abstract NodeType { get; } Bu düğümün türünü alır.
ParentNode { get; } Bu düğümün hemen üst öğesini alır.
PreviousSibling { get; } Bu düğümden hemen önceki düğümü alır.
Range { get; } Bir döndürür Menzil belgenin bu düğümde bulunan bölümünü temsil eden nesne.

yöntemler

İsim Tanım
abstract Accept(DocumentVisitor) Bir ziyaretçiyi 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() Sistem kullanımı için ayrılmıştır. IXPathNavigable.
GetAncestor(NodeType) Belirtilenin ilk atasını alırNodeType .
GetAncestor(Type) Belirtilen nesne türünün ilk üst öğesini alır.
GetChild(NodeType, int, bool) Belirtilen türle eşleşen N. alt düğümü döndürür.
GetChildNodes(NodeType, bool) Belirtilen türle eşleşen canlı bir alt düğüm koleksiyonu döndürür.
GetEnumerator() Bu düğümün alt düğümleri üzerinde 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 dizisindeki belirtilen alt düğümün dizinini döndürür.
InsertAfter(Node, Node) Belirtilen referans düğümünden hemen sonra belirtilen düğümü ekler.
InsertBefore(Node, Node) Belirtilen düğümü, belirtilen referans düğümünden hemen önce 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ğacı 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ırSmartTag geçerli düğümün alt düğümleri.
SelectNodes(string) XPath ifadesiyle eşleşen düğümlerin listesini seçer.
SelectSingleNode(string) XPath ifadesiyle eşleşen ilk Düğümü seçer.
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.

Notlar

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.

buCompositeNodesınıf:

  • Alt düğümlere erişim sağlar.
  • Alt öğeleri ekleme ve kaldırma 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çileceğini 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' bir çıktı dosyasına kaydedilmediğini ve yalnızca düğüm ömrü 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 acil alt öğeleri koleksiyonunu yineleyin,
// ve içinde bulduğumuz tüm koşuları veya şekilleri yazdırın.
NodeCollection children = paragraph.ChildNodes;

Assert.AreEqual(3, paragraph.ChildNodes.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}");
    }

Ayrıca bakınız