SmartTag

SmartTag class

Detta element anger närvaron av en smart tagg runt en eller flera infogade strukturer (sekvenser, bilder, fält etc.) i ett stycke.

För att lära dig mer, besökStrukturerade dokumenttaggar eller innehållskontroll dokumentationsartikel.

public class SmartTag : CompositeNode

Konstruktörer

namnBeskrivning
SmartTag(DocumentBase)Initierar en ny instans avSmartTag klass.

Egenskaper

namnBeskrivning
Count { get; }Hämtar antalet omedelbara barn till denna nod.
CustomNodeId { get; set; }Anger anpassad nodidentifierare.
virtual Document { get; }Hämtar dokumentet som denna nod tillhör.
Element { get; set; }Anger namnet på den smarta taggen i dokumentet.
FirstChild { get; }Hämtar nodens första barn.
HasChildNodes { get; }Returersann om den här noden har några undernoder.
override IsComposite { get; }Returersann eftersom denna nod kan ha underordnade noder.
LastChild { get; }Hämtar nodens sista barn.
NextSibling { get; }Hämtar noden som följer direkt efter denna nod.
override NodeType { get; }ReturerSmartTag .
ParentNode { get; }Hämtar den omedelbara föräldern till denna nod.
PreviousSibling { get; }Hämtar noden som omedelbart föregår denna nod.
Properties { get; }En samling av egenskaperna för smarta taggar.
Range { get; }Returnerar enRangeobjekt som representerar den del av ett dokument som finns i denna nod.
Uri { get; set; }Anger namnrymds-URI:n för smarttaggen.

Metoder

namnBeskrivning
override Accept(DocumentVisitor)Tar emot en besökare.
override AcceptEnd(DocumentVisitor)Accepterar en besökare för att besöka slutet av SmartTag.
override AcceptStart(DocumentVisitor)Accepterar en besökare för att besöka början av SmartTag.
AppendChild<T>(T)Lägger till den angivna noden i slutet av listan över underordnade noder för denna nod.
Clone(bool)Skapar en duplikat av noden.
CreateNavigator()Skapar en navigator som kan användas för att korsa och läsa noder.
GetAncestor(NodeType)Hämtar den första förfadern till den angivnaNodeType .
GetAncestor(Type)Hämtar den första förfadern till den angivna objekttypen.
GetChild(NodeType, int, bool)Returnerar en N:te underordnad nod som matchar den angivna typen.
GetChildNodes(NodeType, bool)Returnerar en live-samling av underordnade noder som matchar den angivna typen.
GetEnumerator()Ger stöd för iterationen för varje stil över de underordnade noderna till denna nod.
override GetText()Hämtar texten för denna nod och alla dess underordnade noder.
IndexOf(Node)Returnerar indexet för den angivna undernoden i undernodsmatrisen.
InsertAfter<T>(T, Node)Infogar den angivna noden omedelbart efter den angivna referensnoden.
InsertBefore<T>(T, Node)Infogar den angivna noden omedelbart före den angivna referensnoden.
NextPreOrder(Node)Hämtar nästa nod enligt algoritmen för förbeställningsträdtraversering.
PrependChild<T>(T)Lägger till den angivna noden i början av listan över underordnade noder för denna nod.
PreviousPreOrder(Node)Hämtar föregående nod enligt algoritmen för trädtraversering i förbeställning.
Remove()Tar bort sig själv från föräldern.
RemoveAllChildren()Tar bort alla undernoder till den aktuella noden.
RemoveChild<T>(T)Tar bort den angivna undernoden.
RemoveSmartTags()Tar bort allaSmartTag underordnade noder till den aktuella noden.
SelectNodes(string)Väljer en lista med noder som matchar XPath-uttrycket.
SelectSingleNode(string)Väljer den förstaNode som matchar XPath-uttrycket.
ToString(SaveFormat)Exporterar nodens innehåll till en sträng i det angivna formatet.
ToString(SaveOptions)Exporterar nodens innehåll till en sträng med de angivna sparalternativen.

Anmärkningar

Smarta taggar är en typ av anpassad XML-kod. Smarta taggar ger en funktion för att bädda in kunddefinierad semantik i dokumentet genom möjligheten att tillhandahålla ett grundläggande namnutrymme/namn för en körning eller en uppsättning körningar i ett dokument.

SmartTag kan vara ett barn till enParagraph eller en annanSmartTag nod.

Den kompletta listan över underordnade noder som kan förekomma inuti en smart tagg består av BookmarkStart ,BookmarkEnd , FieldStart ,FieldSeparator ,FieldEnd ,FormField , Comment ,Footnote , Run ,SpecialChar , Shape ,GroupShape , CommentRangeStart , CommentRangeEnd , SmartTag.

Exempel

Visar hur man skapar smarta taggar.

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

    // En smart tagg visas i ett dokument där Microsoft Word känner igen en del av texten som någon form av data,
    // såsom ett namn, datum eller adress, och konverterar den till en hyperlänk som visar en lila prickad understrykning.
    SmartTag smartTag = new SmartTag(doc);

    // Smarta taggar är sammansatta noder som innehåller sin tolkade text i sin helhet.
    // Lägg till innehåll i den här smarta taggen manuellt.
    smartTag.AppendChild(new Run(doc, "May 29, 2019"));

    // Microsoft Word kan identifiera ovanstående innehåll som ett datum.
    // Smarta taggar använder egenskapen "Element" för att återspegla vilken typ av data de innehåller.
    smartTag.Element = "date";

    // Vissa smarta taggtyper bearbetar sitt innehåll vidare till anpassade XML-egenskaper.
    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"));

    // Ställ in smarttaggens URI till standardvärdet.
    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. "));

    // Skapa ytterligare en smart tagg för en aktieticker.
    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."));

    // Skriv ut alla smarta taggar i vårt dokument med hjälp av en dokumentbesökare.
    doc.Accept(new SmartTagPrinter());

    // Äldre versioner av Microsoft Word har stöd för smarta taggar.
    doc.Save(ArtifactsDir + "SmartTag.Create.doc");

    // Använd metoden "RemoveSmartTags" för att ta bort alla smarta taggar från ett dokument.
    Assert.AreEqual(2, doc.GetChildNodes(NodeType.SmartTag, true).Count);

    doc.RemoveSmartTags();

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

/// <summary>
/// Skriver ut besökta smarta taggar och deras innehåll.
/// </summary>
private class SmartTagPrinter : DocumentVisitor
{
    /// <summary>
    /// Anropas när en SmartTag-nod påträffas i dokumentet.
    /// </summary>
    public override VisitorAction VisitSmartTagStart(SmartTag smartTag)
    {
        Console.WriteLine($"Smart tag type: {smartTag.Element}");
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Anropas när besöket av en SmartTag-nod är avslutat.
    /// </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;
    }
}

Se även