SmartTag

SmartTag class

Detta element specificerar närvaron av en smart tagg runt en eller flera inline structures (körningar, 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 class.

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; }Får det första barnet i noden.
HasChildNodes { get; }ReturnerarSann om denna nod har några undernoder.
override IsComposite { get; }ReturnerarSann eftersom denna nod kan ha underordnade noder.
LastChild { get; }Hämtar nodens sista underordnade.
NextSibling { get; }Hämtar noden omedelbart efter denna nod.
override NodeType { get; }ReturnerarSmartTag .
ParentNode { get; }Hämtar den omedelbara föräldern till denna nod.
PreviousSibling { get; }Hämtar noden omedelbart före denna nod.
Properties { get; }En samling av egenskaperna för smarta taggar.
Range { get; }Returnerar enRange objekt som representerar den del av ett dokument som finns i denna nod.
Uri { get; set; }Anger namnutrymmes-URI för smarttaggen.

Metoder

namnBeskrivning
override Accept(DocumentVisitor)Accepterar en besökare.
AppendChild(Node)Lägger till den angivna noden i slutet av listan över underordnade noder för denna nod.
Clone(bool)Skapar en dubblett av noden.
CreateNavigator()Skapar 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 aktiv samling av underordnade noder som matchar den angivna typen.
GetEnumerator()Tillhandahåller stöd för varje stiliteration över undernoderna för denna nod.
override GetText()Hämtar texten för denna nod och alla dess underordnade.
IndexOf(Node)Returnerar indexet för den angivna undernoden i den underordnade nodmatrisen.
InsertAfter(NodeNode)Infogar den angivna noden omedelbart efter den angivna referensnoden.
InsertBefore(NodeNode)Infogar den angivna noden omedelbart före den angivna referensnoden.
NextPreOrder(Node)Hämtar nästa nod enligt algoritmen för förbeställningsträdet.
PrependChild(Node)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 förbeställningsträdet.
Remove()Tar bort sig själv från föräldern.
RemoveAllChildren()Tar bort alla undernoder för den aktuella noden.
RemoveChild(Node)Tar bort den angivna underordnade noden.
RemoveSmartTags()Tar bort allaSmartTagunderliggande 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 innehållet i noden till en sträng i angivet format.
ToString(SaveOptions)Exporterar innehållet i noden till en sträng med de angivna sparalternativen.

Anmärkningar

Smarta taggar är en slags anpassad XML-uppmärkning. Smarta taggar ger en möjlighet att bädda in kunddefinierad semantik i dokumentet via möjligheten att tillhandahålla ett grundläggande namnområde/namn för en körning eller 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 med Microsoft Word känner igen en del av sin text som någon form av data,
    // som ett namn, datum eller adress, och konverterar det till en hyperlänk som visar en lila prickad underlinje.
    SmartTag smartTag = new SmartTag(doc);

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

    // Microsoft Word kan känna igen ovanstående innehåll som ett datum.
    // Smarta taggar använder egenskapen "Element" för att återspegla typen 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 stöder 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 avslutas.
    /// </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