SmartTag

SmartTag class

Bu öğe, bir paragraf içindeki bir veya daha fazla satır içi yapının (çalıştırmalar, resimler, alanlar, vb.) etrafında akıllı bir etiketin varlığını belirtir.

Daha fazla bilgi edinmek için şu adresi ziyaret edin:Yapılandırılmış Belge Etiketleri veya İçerik Denetimi belgeleme makalesi.

public class SmartTag : CompositeNode

yapıcılar

İsimTanım
SmartTag(DocumentBase)Yeni bir örneğini başlatırSmartTag sınıf.

Özellikleri

İsimTanım
Count { get; }Bu düğümün hemen alt düğümlerinin 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.
Element { get; set; }Belge içindeki akıllı etiketin adını belirtir.
FirstChild { get; }Düğümün ilk çocuğunu alır.
HasChildNodes { get; }Geri Döndürürdoğru eğer bu düğümün herhangi bir alt düğümü varsa.
override IsComposite { get; }Geri Döndürürdoğru çünkü bu düğümün alt düğümleri olabilir.
LastChild { get; }Düğümün son çocuğunu alır.
NextSibling { get; }Bu düğümü hemen takip eden düğümü alır.
override NodeType { get; }Geri DöndürürSmartTag .
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.
Properties { get; }Akıllı etiket özelliklerinin bir koleksiyonu.
Range { get; }BirRangebu düğümde bulunan bir belgenin bölümünü temsil eden nesne.
Uri { get; set; }Akıllı etiketin ad alanı URI’sini belirtir.

yöntemler

İsimTanım
override Accept(DocumentVisitor)Bir ziyaretçiyi kabul eder.
override AcceptEnd(DocumentVisitor)Akıllı Etiketin sonunu ziyaret eden bir ziyaretçiyi kabul eder.
override AcceptStart(DocumentVisitor)Akıllı Etiketin başlangıcını ziyaret eden bir ziyaretçiyi kabul eder.
AppendChild<T>(T)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üğümleri gezmek ve okumak için kullanılabilen gezgini oluşturur.
GetAncestor(NodeType)Belirtilenin ilk atasını alırNodeType .
GetAncestor(Type)Belirtilen nesne türünün ilk atasını 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 düğümlerinin metnini alır.
IndexOf(Node)Alt düğüm dizisindeki belirtilen alt düğümün dizinini döndürür.
InsertAfter<T>(T, Node)Belirtilen düğümü belirtilen referans düğümünden hemen sonra ekler.
InsertBefore<T>(T, Node)Belirtilen düğümü belirtilen referans düğümünden hemen önce ekler.
NextPreOrder(Node)Ön sipariş ağacı geçiş algoritmasına göre bir sonraki düğümü alır.
PrependChild<T>(T)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 ana öğeden kaldırır.
RemoveAllChildren()Geçerli düğümün tüm alt düğümlerini kaldırır.
RemoveChild<T>(T)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 bir listesini seçer.
SelectSingleNode(string)İlkini seçerNode XPath ifadesiyle eşleşen.
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

Akıllı etiketler bir tür özel XML işaretlemesidir. Akıllı etiketler, bir belge içindeki bir çalıştırma veya çalıştırma kümesi için temel bir ad alanı/name sağlama yeteneği aracılığıyla, müşteri tarafından tanımlanan semantiğin belgeye gömülmesi için bir olanak sağlar.

SmartTag bir çocuğun çocuğu olabilirParagraph or başkaSmartTag düğüm.

Akıllı etiketin içinde bulunabilecek alt düğümlerin tam listesi ‘den oluşurBookmarkStart ,BookmarkEnd , FieldStart ,FieldSeparator ,FieldEnd ,FormField , Comment ,Footnote , Run ,SpecialChar , Shape ,GroupShape , CommentRangeStart , CommentRangeEnd , SmartTag.

Örnekler

Akıllı etiketlerin nasıl oluşturulacağını gösterir.

public void Create()
{
    Document doc = new Document();

    // Microsoft Word'de bir belgede görünen akıllı etiket, metnin bir kısmını bir tür veri olarak tanır,
    // isim, tarih veya adres gibi bir bilgiyi alıp mor noktalı alt çizgi gösteren bir köprü metnine dönüştürür.
    SmartTag smartTag = new SmartTag(doc);

    // Akıllı etiketler, tanınan metinlerini bütünüyle içeren bileşik düğümlerdir.
    // Bu akıllı etikete içerikleri manuel olarak ekleyin.
    smartTag.AppendChild(new Run(doc, "May 29, 2019"));

    // Microsoft Word yukarıdaki içeriği bir tarih olarak tanıyabilir.
    // Akıllı etiketler, içerdikleri veri türünü yansıtmak için "Element" özelliğini kullanır.
    smartTag.Element = "date";

    // Bazı akıllı etiket türleri içeriklerini daha sonra özel XML özelliklerine işler.
    smartTag.Properties.Add(new CustomXmlProperty("Day", string.Empty, "29"));
    smartTag.Properties.Add(new CustomXmlProperty("Month", string.Empty, "5"));
    smartTag.Properties.Add(new CustomXmlProperty("Year", string.Empty, "2019"));

    // Akıllı etiketin URI'sini varsayılan değere ayarlayın.
    smartTag.Uri = "urn:schemas-microsoft-com:office:smarttags";

    doc.FirstSection.Body.FirstParagraph.AppendChild(smartTag);
    doc.FirstSection.Body.FirstParagraph.AppendChild(new Run(doc, " is a date. "));

    // Bir hisse senedi için başka bir akıllı etiket oluşturun.
    smartTag = new SmartTag(doc);
    smartTag.Element = "stockticker";
    smartTag.Uri = "urn:schemas-microsoft-com:office:smarttags";

    smartTag.AppendChild(new Run(doc, "MSFT"));

    doc.FirstSection.Body.FirstParagraph.AppendChild(smartTag);
    doc.FirstSection.Body.FirstParagraph.AppendChild(new Run(doc, " is a stock ticker."));

    // Belge ziyaretçisini kullanarak belgemizdeki tüm akıllı etiketleri yazdır.
    doc.Accept(new SmartTagPrinter());

    // Microsoft Word'ün eski sürümleri akıllı etiketleri destekler.
    doc.Save(ArtifactsDir + "SmartTag.Create.doc");

    // Bir belgeden tüm akıllı etiketleri kaldırmak için "RemoveSmartTags" yöntemini kullanın.
    Assert.AreEqual(2, doc.GetChildNodes(NodeType.SmartTag, true).Count);

    doc.RemoveSmartTags();

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

/// <summary>
/// Ziyaret edilen akıllı etiketleri ve içeriklerini yazdırır.
/// </summary>
private class SmartTagPrinter : DocumentVisitor
{
    /// <summary>
    /// Belgede bir SmartTag düğümüyle karşılaşıldığında çağrılır.
    /// </summary>
    public override VisitorAction VisitSmartTagStart(SmartTag smartTag)
    {
        Console.WriteLine($"Smart tag type: {smartTag.Element}");
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Bir SmartTag düğümünün ziyareti sona erdiğinde çağrılır.
    /// </summary>
    public override VisitorAction VisitSmartTagEnd(SmartTag smartTag)
    {
        Console.WriteLine($"\tContents: \"{smartTag.ToString(SaveFormat.Text)}\"");

        if (smartTag.Properties.Count == 0)
        {
            Console.WriteLine("\tContains no properties");
        }
        else
        {
            Console.Write("\tProperties: ");
            string[] properties = new string[smartTag.Properties.Count];
            int index = 0;

            foreach (CustomXmlProperty cxp in smartTag.Properties)
                properties[index++] = $"\"{cxp.Name}\" = \"{cxp.Value}\"";

            Console.WriteLine(string.Join(", ", properties));
        }

        return VisitorAction.Continue;
    }
}

Ayrıca bakınız