Accept
İçindekiler
[
Saklamak
]Footnote.Accept method
Ziyaretçi kabul eder.
public override bool Accept(DocumentVisitor visitor)
Parametre | Tip | Tanım |
---|---|---|
visitor | DocumentVisitor | Düğümleri ziyaret edecek ziyaretçi. |
Geri dönüş değeri
Tüm düğümler ziyaret edilmişse doğrudur; yanlış iseDocumentVisitor
tüm düğümleri ziyaret etmeden işlemi durdurdu.
Notlar
Bu düğümü ve tüm alt öğelerini numaralandırır. Her düğüm kendisine karşılık gelen bir yöntemi çağırır.DocumentVisitor
.
Daha fazla bilgi için Ziyaretçi tasarım desenine bakın.
DocumentVisitor.VisitFootnoteStart’ı çağırır, ardından footnote ’nin tüm alt düğümleri için Accept’i çağırır ve sonunda DocumentVisitor.VisitFootnoteEnd’i çağırır.
Örnekler
Bir belgedeki her dipnotun düğüm yapısının nasıl yazdırılacağını gösterir.
public void FootnoteToText()
{
Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
FootnoteStructurePrinter visitor = new FootnoteStructurePrinter();
// Bir belge ziyaretçisini kabul edecek bileşik bir düğüm aldığımızda, ziyaretçi kabul eden düğümü ziyaret eder,
// ve ardından düğümün tüm alt öğelerini derinlik öncelikli bir şekilde geçer.
// Ziyaretçi ziyaret edilen her düğümü okuyabilir ve değiştirebilir.
doc.Accept(visitor);
Console.WriteLine(visitor.GetText());
}
/// <summary>
/// Bir düğümün ikili olmayan alt düğüm ağacını geçer.
/// Karşılaşılan tüm Dipnot düğümleri ve bunların alt öğelerinden oluşan bir dizi biçiminde bir harita oluşturur.
/// </summary>
public class FootnoteStructurePrinter : DocumentVisitor
{
public FootnoteStructurePrinter()
{
mBuilder = new StringBuilder();
mVisitorIsInsideFootnote = false;
}
/// <summary>
/// Ziyaretçinin biriktirdiği belgenin düz metnini alır.
/// </summary>
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// Belgede bir Dipnot düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitFootnoteStart(Footnote footnote)
{
IndentAndAppendLine("[Footnote start] Type: " + footnote.FootnoteType);
mDocTraversalDepth++;
mVisitorIsInsideFootnote = true;
return VisitorAction.Continue;
}
/// <summary>
/// Dipnot düğümünün tüm alt düğümleri ziyaret edildikten sonra çağrılır.
/// </summary>
public override VisitorAction VisitFootnoteEnd(Footnote footnote)
{
mDocTraversalDepth--;
IndentAndAppendLine("[Footnote end]");
mVisitorIsInsideFootnote = false;
return VisitorAction.Continue;
}
/// <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 (mVisitorIsInsideFootnote) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");
return VisitorAction.Continue;
}
/// <summary>
/// StringBuilder'a bir satır ekleyin ve ziyaretçinin belge ağacında ne kadar derin olduğuna bağlı olarak onu girintileyin.
/// </summary>
/// <param adı="metin"></param>
private void IndentAndAppendLine(string text)
{
for (int i = 0; i < mDocTraversalDepth; i++) mBuilder.Append("| ");
mBuilder.AppendLine(text);
}
private bool mVisitorIsInsideFootnote;
private int mDocTraversalDepth;
private readonly StringBuilder mBuilder;
}
Ayrıca bakınız
- class DocumentVisitor
- class Footnote
- ad alanı Aspose.Words.Notes
- toplantı Aspose.Words