SmartTag

SmartTag class

Questo elemento specifica la presenza di uno smart tag attorno a una o più strutture inline (sequenze, immagini, campi, ecc.) all’interno di un paragrafo.

Per saperne di più, visita ilTag di documenti strutturati o controllo del contenuto articolo di documentazione.

public class SmartTag : CompositeNode

Costruttori

NomeDescrizione
SmartTag(DocumentBase)Inizializza una nuova istanza diSmartTag classe.

Proprietà

NomeDescrizione
Count { get; }Ottiene il numero di figli immediati di questo nodo.
CustomNodeId { get; set; }Specifica l’identificatore del nodo personalizzato.
virtual Document { get; }Ottiene il documento a cui appartiene questo nodo.
Element { get; set; }Specifica il nome dello smart tag all’interno del documento.
FirstChild { get; }Ottiene il primo figlio del nodo.
HasChildNodes { get; }RestituisceVERO se questo nodo ha nodi figli.
override IsComposite { get; }RestituisceVERO poiché questo nodo può avere nodi figli.
LastChild { get; }Ottiene l’ultimo figlio del nodo.
NextSibling { get; }Ottiene il nodo immediatamente successivo a questo nodo.
override NodeType { get; }RestituisceSmartTag .
ParentNode { get; }Ottiene il genitore immediato di questo nodo.
PreviousSibling { get; }Ottiene il nodo immediatamente precedente questo nodo.
Properties { get; }Una raccolta delle proprietà dello smart tag.
Range { get; }Restituisce aRange oggetto che rappresenta la porzione di documento contenuta in questo nodo.
Uri { get; set; }Specifica l’URI dello spazio dei nomi dello smart tag.

Metodi

NomeDescrizione
override Accept(DocumentVisitor)Accetta un visitatore.
AppendChild(Node)Aggiunge il nodo specificato alla fine dell’elenco dei nodi secondari per questo nodo.
Clone(bool)Crea un duplicato del nodo.
CreateNavigator()Crea un navigatore che può essere utilizzato per attraversare e leggere i nodi.
GetAncestor(NodeType)Ottiene il primo antenato dell’oggetto specificatoNodeType .
GetAncestor(Type)Ottiene il primo antenato del tipo di oggetto specificato.
GetChild(NodeType, int, bool)Restituisce un Nesimo nodo figlio che corrisponde al tipo specificato.
GetChildNodes(NodeType, bool)Restituisce una raccolta attiva di nodi secondari che corrispondono al tipo specificato.
GetEnumerator()Fornisce il supporto per l’iterazione di ogni stile sui nodi figlio di questo nodo.
override GetText()Ottiene il testo di questo nodo e di tutti i suoi figli.
IndexOf(Node)Restituisce l’indice del nodo figlio specificato nell’array di nodi figlio.
InsertAfter(NodeNode)Inserisce il nodo specificato immediatamente dopo il nodo di riferimento specificato.
InsertBefore(NodeNode)Inserisce il nodo specificato immediatamente prima del nodo di riferimento specificato.
NextPreOrder(Node)Ottiene il nodo successivo in base all’algoritmo di attraversamento dell’albero di preordine.
PrependChild(Node)Aggiunge il nodo specificato all’inizio dell’elenco dei nodi secondari per questo nodo.
PreviousPreOrder(Node)Ottiene il nodo precedente in base all’algoritmo di attraversamento dell’albero di preordine.
Remove()Si rimuove dal genitore.
RemoveAllChildren()Rimuove tutti i nodi figlio del nodo corrente.
RemoveChild(Node)Rimuove il nodo figlio specificato.
RemoveSmartTags()Rimuove tuttoSmartTagnodi discendenti del nodo corrente.
SelectNodes(string)Seleziona un elenco di nodi che corrispondono all’espressione XPath.
SelectSingleNode(string)Seleziona il primoNode che corrisponde all’espressione XPath.
ToString(SaveFormat)Esporta il contenuto del nodo in una stringa nel formato specificato.
ToString(SaveOptions)Esporta il contenuto del nodo in una stringa utilizzando le opzioni di salvataggio specificate.

Osservazioni

Gli smart tag sono una sorta di markup XML personalizzato. Gli smart tag forniscono una funzionalità per incorporare la semantica definita dal cliente nel documento tramite la possibilità di fornire uno spazio dei nomi/nome di base per un’esecuzione o una serie di esecuzioni all’interno di un documento.

SmartTag può essere figlio di aParagraph o un altroSmartTag nodo.

L’elenco completo dei nodi secondari che possono verificarsi all’interno di uno smart tag è costituito da BookmarkStart ,BookmarkEnd , FieldStart ,FieldSeparator ,FieldEnd ,FormField , Comment ,Footnote , Run ,SpecialChar , Shape ,GroupShape , CommentRangeStart , CommentRangeEnd , SmartTag.

Esempi

Mostra come creare smart tag.

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

    // Uno smart tag appare in un documento con Microsoft Word riconosce una parte del suo testo come una qualche forma di dati,
    // come un nome, una data o un indirizzo e lo converte in un collegamento ipertestuale che visualizza una sottolineatura tratteggiata viola.
    SmartTag smartTag = new SmartTag(doc);

    // Gli smart tag sono nodi compositi che contengono il testo riconosciuto nella sua interezza.
    // Aggiunge manualmente i contenuti a questo smart tag.
    smartTag.AppendChild(new Run(doc, "May 29, 2019"));

    // Microsoft Word potrebbe riconoscere i contenuti di cui sopra come una data.
    // Gli smart tag utilizzano la proprietà "Elemento" per riflettere il tipo di dati che contengono.
    smartTag.Element = "date";

    // Alcuni tipi di smart tag elaborano ulteriormente i propri contenuti in proprietà XML personalizzate.
    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"));

    // Imposta l'URI dello smart tag sul valore predefinito.
    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. "));

    // Crea un altro smart tag per un titolo azionario.
    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."));

    // Stampa tutti gli smart tag nel nostro documento utilizzando un visitatore del documento.
    doc.Accept(new SmartTagPrinter());

    // Le versioni precedenti di Microsoft Word supportano gli smart tag.
    doc.Save(ArtifactsDir + "SmartTag.Create.doc");

    // Utilizza il metodo "RemoveSmartTags" per rimuovere tutti gli smart tag da un documento.
    Assert.AreEqual(2, doc.GetChildNodes(NodeType.SmartTag, true).Count);

    doc.RemoveSmartTags();

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

/// <summary>
/// Stampa gli smart tag visitati e i relativi contenuti.
/// </summary>
private class SmartTagPrinter : DocumentVisitor
{
    /// <summary>
    /// Chiamato quando nel documento viene rilevato un nodo SmartTag.
    /// </summary>
    public override VisitorAction VisitSmartTagStart(SmartTag smartTag)
    {
        Console.WriteLine($"Smart tag type: {smartTag.Element}");
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato al termine della visita di un nodo 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;
    }
}

Guarda anche