Accept
Contenido
[
Ocultar
]FieldSeparator.Accept method
Acepta un visitante.
public override bool Accept(DocumentVisitor visitor)
| Parámetro | Escribe | Descripción |
|---|---|---|
| visitor | DocumentVisitor | El visitante que visitará el nodo. |
Valor_devuelto
FALSO Si el visitante solicitó que se detuviera la enumeración.
Observaciones
LlamadasVisitFieldSeparator.
Para obtener más información, consulte el patrón de diseño Visitor.
Ejemplos
Muestra cómo trabajar con una colección de campos.
public void FieldCollection()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField(" DATE \\@ \"dddd, d MMMM yyyy\" ");
builder.InsertField(" TIME ");
builder.InsertField(" REVNUM ");
builder.InsertField(" AUTHOR \"John Doe\" ");
builder.InsertField(" SUBJECT \"My Subject\" ");
builder.InsertField(" QUOTE \"Hello world!\" ");
doc.UpdateFields();
FieldCollection fields = doc.Range.Fields;
Assert.AreEqual(6, fields.Count);
// Iterar sobre la colección de campos e imprimir el contenido y el tipo
// de cada campo utilizando una implementación de visitante personalizada.
FieldVisitor fieldVisitor = new FieldVisitor();
using (IEnumerator<Field> fieldEnumerator = fields.GetEnumerator())
{
while (fieldEnumerator.MoveNext())
{
if (fieldEnumerator.Current != null)
{
fieldEnumerator.Current.Start.Accept(fieldVisitor);
fieldEnumerator.Current.Separator?.Accept(fieldVisitor);
fieldEnumerator.Current.End.Accept(fieldVisitor);
}
else
{
Console.WriteLine("There are no fields in the document.");
}
}
}
Console.WriteLine(fieldVisitor.GetText());
}
/// <summary>
/// Implementación del documento de visitante que imprime información del campo.
/// </summary>
public class FieldVisitor : DocumentVisitor
{
public FieldVisitor()
{
mBuilder = new StringBuilder();
}
/// <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 FieldStart en el documento.
/// </summary>
public override VisitorAction VisitFieldStart(FieldStart fieldStart)
{
mBuilder.AppendLine("Found field: " + fieldStart.FieldType);
mBuilder.AppendLine("\tField code: " + fieldStart.GetField().GetFieldCode());
mBuilder.AppendLine("\tDisplayed as: " + fieldStart.GetField().Result);
return VisitorAction.Continue;
}
/// <summary>
/// Se llama cuando se encuentra un nodo FieldSeparator en el documento.
/// </summary>
public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
{
mBuilder.AppendLine("\tFound separator: " + fieldSeparator.GetText());
return VisitorAction.Continue;
}
/// <summary>
/// Se llama cuando se encuentra un nodo FieldEnd en el documento.
/// </summary>
public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
{
mBuilder.AppendLine("End of field: " + fieldEnd.FieldType);
return VisitorAction.Continue;
}
private readonly StringBuilder mBuilder;
}
Ver también
- class DocumentVisitor
- class FieldSeparator
- espacio de nombres Aspose.Words.Fields
- asamblea Aspose.Words