VisitFieldSeparator
İçindekiler
[
Saklamak
]DocumentVisitor.VisitFieldSeparator method
Belgede bir alan ayırıcısı ile karşılaşıldığında çağrılır.
public virtual VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
Parametre | Tip | Tanım |
---|---|---|
fieldSeparator | FieldSeparator | Ziyaret edilen nesne. |
Geri dönüş değeri
AVisitorAction
sayımın nasıl devam edeceğini belirten değer.
Notlar
Alan ayırıcısı, belgedeki alan kodunu alan değerinden ayırır. Bazı alanlarının yalnızca alan koduna sahip olduğunu ve alan ayırıcısı ve alan değerine sahip olmadığını unutmayın.
Daha fazla bilgi için bkz.VisitFieldStart
Örnekler
Bir belgedeki her alanın düğüm yapısının nasıl yazdırılacağını gösterir.
public void FieldToText()
{
Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
FieldStructurePrinter visitor = new FieldStructurePrinter();
// Bir belge ziyaretçisini kabul etmek için bir bileşik düğüm aldığımızda, ziyaretçi kabul eden düğümü ziyaret eder,
// ve sonra düğümün tüm çocuklarını derinlemesine bir şekilde dolaşır.
// Ziyaretçi ziyaret edilen her düğümü okuyabilir ve değiştirebilir.
doc.Accept(visitor);
Console.WriteLine(visitor.GetText());
}
/// <summary>
/// Bir düğümün alt düğümlerinin ikili olmayan ağacını dolaşır.
/// Karşılaşılan tüm Alan düğümlerini ve bunların alt düğümlerini içeren bir dize biçiminde bir harita oluşturur.
/// </summary>
public class FieldStructurePrinter : DocumentVisitor
{
public FieldStructurePrinter()
{
mBuilder = new StringBuilder();
mVisitorIsInsideField = false;
}
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// Belgede bir Çalıştırma düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitRun(Run run)
{
if (mVisitorIsInsideField) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir FieldStart düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitFieldStart(FieldStart fieldStart)
{
IndentAndAppendLine("[Field start] FieldType: " + fieldStart.FieldType);
mDocTraversalDepth++;
mVisitorIsInsideField = true;
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir FieldEnd düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
{
mDocTraversalDepth--;
IndentAndAppendLine("[Field end]");
mVisitorIsInsideField = false;
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir FieldSeparator düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
{
IndentAndAppendLine("[FieldSeparator]");
return VisitorAction.Continue;
}
/// <summary>
/// StringBuilder'a bir satır ekleyin ve ziyaretçinin derinliğine bağlı olarak girintisini ayarlayın
/// alanın alt düğümlerinin ağacına.
/// </summary>
/// <param adı="metin"></param>
private void IndentAndAppendLine(string text)
{
for (int i = 0; i < mDocTraversalDepth; i++)
{
mBuilder.Append("| ");
}
mBuilder.AppendLine(text);
}
private bool mVisitorIsInsideField;
private int mDocTraversalDepth;
private readonly StringBuilder mBuilder;
}
Ayrıca bakınız
- enum VisitorAction
- class FieldSeparator
- class DocumentVisitor
- ad alanı Aspose.Words
- toplantı Aspose.Words