Accept
Contenuti
[
Nascondere
]FieldSeparator.Accept method
Accetta un visitatore.
public override bool Accept(DocumentVisitor visitor)
| Parametro | Tipo | Descrizione |
|---|---|---|
| visitor | DocumentVisitor | Il visitatore che visiterà il nodo. |
Valore di ritorno
Falso se il visitatore ha richiesto l’interruzione dell’enumerazione.
Osservazioni
chiamateVisitFieldSeparator.
Per maggiori informazioni, vedere il design pattern Visitor.
Esempi
Mostra come lavorare con una raccolta di campi.
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);
// Esegui l'iterazione sulla raccolta dei campi e stampa il contenuto e il tipo
// di ogni campo utilizzando un'implementazione personalizzata del visitatore.
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>
/// Implementazione del visitatore del documento che stampa le informazioni sui campi.
/// </summary>
public class FieldVisitor : DocumentVisitor
{
public FieldVisitor()
{
mBuilder = new StringBuilder();
}
/// <summary>
/// Ottiene il testo normale del documento accumulato dal visitatore.
/// </summary>
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo FieldStart.
/// </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>
/// Chiamato quando nel documento viene rilevato un nodo FieldSeparator.
/// </summary>
public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
{
mBuilder.AppendLine("\tFound separator: " + fieldSeparator.GetText());
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo FieldEnd.
/// </summary>
public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
{
mBuilder.AppendLine("End of field: " + fieldEnd.FieldType);
return VisitorAction.Continue;
}
private readonly StringBuilder mBuilder;
}
Guarda anche
- class DocumentVisitor
- class FieldSeparator
- spazio dei nomi Aspose.Words.Fields
- assemblea Aspose.Words