SmartTag

SmartTag class

يحدد هذا العنصر وجود علامة ذكية حول بنية سطرية واحدة أو أكثر (عمليات التشغيل والصور والحقول وما إلى ذلك) داخل الفقرة.

لمعرفة المزيد، قم بزيارةعلامات المستندات المنظمة أو التحكم في المحتوى مقالة توثيقية.

public class SmartTag : CompositeNode

المنشئون

اسموصف
SmartTag(DocumentBase)تهيئة مثيل جديد لـSmartTag فئة.

الخصائص

اسموصف
Count { get; }يحصل على عدد الأطفال المباشرين لهذه العقدة.
CustomNodeId { get; set; }يحدد معرف العقدة المخصصة.
virtual Document { get; }الحصول على المستند الذي تنتمي إليه هذه العقدة.
Element { get; set; }يحدد اسم العلامة الذكية داخل المستند.
FirstChild { get; }يحصل على الطفل الأول للعقدة.
HasChildNodes { get; }إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية.
override IsComposite { get; }إرجاعحقيقي لأن هذه العقدة يمكن أن تحتوي على عقد فرعية.
LastChild { get; }يحصل على الطفل الأخير للعقدة.
NextSibling { get; }يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; }إرجاعSmartTag .
ParentNode { get; }يحصل على الأصل المباشر لهذه العقدة.
PreviousSibling { get; }يحصل على العقدة التي تسبق هذه العقدة مباشرة.
Properties { get; }مجموعة من خصائص العلامة الذكية.
Range { get; }إرجاع أRange الكائن الذي يمثل جزء المستند الموجود في هذه العقدة.
Uri { get; set; }يحدد مساحة الاسم URI للعلامة الذكية.

طُرق

اسموصف
override Accept(DocumentVisitor)يقبل الزائر.
AppendChild(Node)إضافة العقدة المحددة إلى نهاية قائمة العقد التابعة لهذه العقدة.
Clone(bool)إنشاء نسخة مكررة من العقدة.
CreateNavigator()إنشاء متصفح يمكن استخدامه لاجتياز العقد وقراءتها.
GetAncestor(NodeType)يحصل على السلف الأول للمحددNodeType .
GetAncestor(Type)الحصول على السلف الأول لنوع الكائن المحدد.
GetChild(NodeType, int, bool)إرجاع العقدة الفرعية N التي تطابق النوع المحدد.
GetChildNodes(NodeType, bool)إرجاع مجموعة مباشرة من العقد الفرعية التي تطابق النوع المحدد.
GetEnumerator()يوفر الدعم لتكرار كل نمط عبر العقد الفرعية لهذه العقدة.
override GetText()الحصول على نص هذه العقدة وجميع أبنائها.
IndexOf(Node)إرجاع فهرس العقدة الفرعية المحددة في صفيف العقدة الفرعية.
InsertAfter(NodeNode)يقوم بإدراج العقدة المحددة مباشرة بعد العقدة المرجعية المحددة.
InsertBefore(NodeNode)يقوم بإدراج العقدة المحددة مباشرة قبل العقدة المرجعية المحددة.
NextPreOrder(Node)الحصول على العقدة التالية وفقًا لخوارزمية اجتياز شجرة الطلب المسبق.
PrependChild(Node)إضافة العقدة المحددة إلى بداية قائمة العقد التابعة لهذه العقدة.
PreviousPreOrder(Node)الحصول على العقدة السابقة وفقًا لخوارزمية اجتياز شجرة الطلب المسبق.
Remove()يزيل نفسه من الأصل.
RemoveAllChildren()إزالة جميع العقد الفرعية للعقدة الحالية.
RemoveChild(Node)إزالة العقدة الفرعية المحددة.
RemoveSmartTags()يزيل الكلSmartTagالعقد التابعة للعقدة الحالية.
SelectNodes(string)تحديد قائمة العقد المطابقة لتعبير XPath.
SelectSingleNode(string)تحديد الأولNode الذي يطابق تعبير XPath.
ToString(SaveFormat)تصدير محتوى العقدة إلى سلسلة بالتنسيق المحدد.
ToString(SaveOptions)تصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة.

ملاحظات

العلامات الذكية هي نوع من علامات XML المخصصة. توفر العلامات الذكية وسيلة لدمج الدلالات المعرفة بواسطة العميل في المستند من خلال القدرة على توفير مساحة اسم أساسية/name للتشغيل أو مجموعة من عمليات التشغيل داخل المستند.

SmartTag يمكن أن يكون طفلاParagraph أو آخرSmartTag العقدة.

تتكون القائمة الكاملة للعقد الفرعية التي يمكن أن تحدث داخل العلامة الذكية من BookmarkStart ,BookmarkEndFieldStart ,FieldSeparator ,FieldEnd ,FormFieldComment ,FootnoteRun ,SpecialCharShape ,GroupShapeCommentRangeStartCommentRangeEndSmartTag.

أمثلة

يوضح كيفية إنشاء العلامات الذكية.

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

    // العلامة الذكية التي تظهر في مستند باستخدام Microsoft Word تتعرف على جزء من نصه كشكل من أشكال البيانات،
    // مثل الاسم أو التاريخ أو العنوان، وتحويله إلى ارتباط تشعبي يعرض تسطيرًا منقطًا أرجوانيًا.
    SmartTag smartTag = new SmartTag(doc);

    // العلامات الذكية هي عقد مركبة تحتوي على النص الذي تم التعرف عليه بالكامل.
    // أضف محتويات إلى هذه العلامة الذكية يدويًا.
    smartTag.AppendChild(new Run(doc, "May 29, 2019"));

    // قد يتعرف Microsoft Word على المحتويات المذكورة أعلاه على أنها تاريخ.
    // تستخدم العلامات الذكية خاصية "العنصر" لتعكس نوع البيانات التي تحتوي عليها.
    smartTag.Element = "date";

    // تقوم بعض أنواع العلامات الذكية بمعالجة محتوياتها بشكل أكبر في خصائص XML المخصصة.
    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"));

    // قم بتعيين URI الخاص بالعلامة الذكية على القيمة الافتراضية.
    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. "));

    // أنشئ علامة ذكية أخرى لمؤشر الأسهم.
    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."));

    // اطبع جميع العلامات الذكية في مستندنا باستخدام زائر المستند.
    doc.Accept(new SmartTagPrinter());

    // الإصدارات الأقدم من Microsoft Word تدعم العلامات الذكية.
    doc.Save(ArtifactsDir + "SmartTag.Create.doc");

    // استخدم طريقة "RemoveSmartTags" لإزالة كافة العلامات الذكية من المستند.
    Assert.AreEqual(2, doc.GetChildNodes(NodeType.SmartTag, true).Count);

    doc.RemoveSmartTags();

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

/// <summary>
/// طباعة العلامات الذكية التي تمت زيارتها ومحتوياتها.
/// </summary>
private class SmartTagPrinter : DocumentVisitor
{
    /// <summary>
    /// يتم الاتصال به عند مواجهة عقدة SmartTag في المستند.
    /// </summary>
    public override VisitorAction VisitSmartTagStart(SmartTag smartTag)
    {
        Console.WriteLine($"Smart tag type: {smartTag.Element}");
        return VisitorAction.Continue;
    }

    /// <summary>
    /// يتم الاتصال به عند انتهاء زيارة عقدة SmartTag.
    /// </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;
    }
}

أنظر أيضا