AcceptStart
Contenido
[
Ocultar
]StructuredDocumentTag.AcceptStart method
Acepta un visitante por visitar el inicio de StructuredDocumentTag.
public override VisitorAction AcceptStart(DocumentVisitor visitor)
| Parámetro | Escribe | Descripción | 
|---|---|---|
| visitor | DocumentVisitor | El visitante del documento. | 
Valor_devuelto
La acción que debe realizar el visitante.
Ejemplos
Muestra cómo imprimir la estructura de nodo de cada etiqueta de documento estructurado en un documento.
public void StructuredDocumentTagToText()
{
    Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
    StructuredDocumentTagNodePrinter visitor = new StructuredDocumentTagNodePrinter();
    // Cuando conseguimos que un nodo compuesto acepte un visitante de documento, el visitante visita el nodo que lo acepta,
    // y luego recorre todos los nodos secundarios en profundidad.
    //El visitante puede leer y modificar cada nodo visitado.
    doc.Accept(visitor);
    Console.WriteLine(visitor.GetText());
}
/// <summary>
/// Recorre el árbol no binario de nodos secundarios de un nodo.
/// Crea un mapa en forma de cadena de todos los nodos StructuredDocumentTag encontrados y sus hijos.
/// </summary>
public class StructuredDocumentTagNodePrinter : DocumentVisitor
{
    public StructuredDocumentTagNodePrinter()
    {
        mBuilder = new StringBuilder();
        mVisitorIsInsideStructuredDocumentTag = false;
    }
    /// <summary>
    /// Obtiene el texto simple del documento que fue acumulado por el visitante.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }
    /// <summary>
    /// Se llama cuando se encuentra un nodo Ejecutar en el documento.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (mVisitorIsInsideStructuredDocumentTag) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");
        return VisitorAction.Continue;
    }
    /// <summary>
    /// Se llama cuando se encuentra un nodo StructuredDocumentTag en el documento.
    /// </summary>
    public override VisitorAction VisitStructuredDocumentTagStart(StructuredDocumentTag sdt)
    {
        IndentAndAppendLine("[StructuredDocumentTag start] Title: " + sdt.Title);
        mDocTraversalDepth++;
        return VisitorAction.Continue;
    }
    /// <summary>
    /// Se llama después de que se hayan visitado todos los nodos secundarios de un nodo StructuredDocumentTag.
    /// </summary>
    public override VisitorAction VisitStructuredDocumentTagEnd(StructuredDocumentTag sdt)
    {
        mDocTraversalDepth--;
        IndentAndAppendLine("[StructuredDocumentTag end]");
        return VisitorAction.Continue;
    }
    /// <summary>
    /// Agrega una línea al StringBuilder y sangrala dependiendo de qué tan profundo se encuentre el visitante en el árbol del documento.
    /// </summary>
    /// <param name="texto"></param>
    private void IndentAndAppendLine(string text)
    {
        for (int i = 0; i < mDocTraversalDepth; i++) mBuilder.Append("|  ");
        mBuilder.AppendLine(text);
    }
    private readonly bool mVisitorIsInsideStructuredDocumentTag;
    private int mDocTraversalDepth;
    private readonly StringBuilder mBuilder;
}
Ver también
- enum VisitorAction
- class DocumentVisitor
- class StructuredDocumentTag
- espacio de nombres Aspose.Words.Markup
- asamblea Aspose.Words