DocumentVisitor
DocumentVisitor class
Özel belge ziyaretçileri için temel sınıf.
Daha fazla bilgi edinmek için şu adresi ziyaret edin:Aspose.Words Belge Nesne Modeli (DOM) belgeleme makalesi.
public abstract class DocumentVisitor
yöntemler
İsim | Tanım |
---|---|
virtual VisitAbsolutePositionTab(AbsolutePositionTab) | Bir çağrı yapıldığında çağrılırAbsolutePositionTab Belgede düğümle karşılaşıldı. |
virtual VisitBodyEnd(Body) | Bir bölümdeki ana metin hikayesinin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitBodyStart(Body) | Bir bölümdeki ana metin hikayesinin numaralandırılması başladığında çağrılır. |
virtual VisitBookmarkEnd(BookmarkEnd) | Belgede bir yer iminin sonuna ulaşıldığında çağrılır. |
virtual VisitBookmarkStart(BookmarkStart) | Belgede bir yer imi başlangıcıyla karşılaşıldığında çağrılır. |
virtual VisitBuildingBlockEnd(BuildingBlock) | Bir yapı bloğunun numaralandırılması sona erdiğinde çağrılır. |
virtual VisitBuildingBlockStart(BuildingBlock) | Bir yapı bloğunun numaralandırılması başladığında çağrılır. |
virtual VisitCellEnd(Cell) | Bir tablo hücresinin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitCellStart(Cell) | Bir tablo hücresinin numaralandırılması başladığında çağrılır. |
virtual VisitCommentEnd(Comment) | Bir yorum metninin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitCommentRangeEnd(CommentRangeEnd) | Yorumlanmış bir metin aralığının sonuna gelindiğinde çağrılır. |
virtual VisitCommentRangeStart(CommentRangeStart) | Yorumlanmış bir metin aralığının başlangıcıyla karşılaşıldığında çağrılır. |
virtual VisitCommentStart(Comment) | Bir yorum metninin numaralandırılması başladığında çağrılır. |
virtual VisitDocumentEnd(Document) | Belgenin numaralandırılması tamamlandığında çağrılır. |
virtual VisitDocumentStart(Document) | Belgenin numaralandırılması başladığında çağrılır. |
virtual VisitEditableRangeEnd(EditableRangeEnd) | Belgede düzenlenebilir bir aralığın sonuna ulaşıldığında çağrılır. |
virtual VisitEditableRangeStart(EditableRangeStart) | Belgede düzenlenebilir bir aralığın başlangıcıyla karşılaşıldığında çağrılır. |
virtual VisitFieldEnd(FieldEnd) | Belgede bir alan sona erdiğinde çağrılır. |
virtual VisitFieldSeparator(FieldSeparator) | Belgede bir alan ayırıcısı ile karşılaşıldığında çağrılır. |
virtual VisitFieldStart(FieldStart) | Belgede bir alan başladığında çağrılır. |
virtual VisitFootnoteEnd(Footnote) | Dipnot veya sonnot metninin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitFootnoteStart(Footnote) | Dipnot veya sonnot metninin numaralandırılması başladığında çağrılır. |
virtual VisitFormField(FormField) | Belgede bir form alanıyla karşılaşıldığında çağrılır. |
virtual VisitGlossaryDocumentEnd(GlossaryDocument) | Bir sözlük belgesinin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitGlossaryDocumentStart(GlossaryDocument) | Bir sözlük belgesinin numaralandırılması başladığında çağrılır. |
virtual VisitGroupShapeEnd(GroupShape) | Bir grup şeklinin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitGroupShapeStart(GroupShape) | Bir grup şeklinin numaralandırılması başladığında çağrılır. |
virtual VisitHeaderFooterEnd(HeaderFooter) | Bir bölümdeki başlık veya altbilginin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitHeaderFooterStart(HeaderFooter) | Bir bölümdeki üstbilgi veya altbilginin numaralandırılması başladığında çağrılır. |
virtual VisitOfficeMathEnd(OfficeMath) | Bir Office Math nesnesinin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitOfficeMathStart(OfficeMath) | Bir Office Math nesnesinin numaralandırılması başladığında çağrılır. |
virtual VisitParagraphEnd(Paragraph) | Bir paragrafın numaralandırılması sona erdiğinde çağrılır. |
virtual VisitParagraphStart(Paragraph) | Bir paragrafın numaralandırılması başladığında çağrılır. |
virtual VisitRowEnd(Row) | Bir tablo satırının numaralandırılması sona erdiğinde çağrılır. |
virtual VisitRowStart(Row) | Bir tablo satırının numaralandırılması başladığında çağrılır. |
virtual VisitRun(Run) | Bir metin çalışmasıyla karşılaşıldığında çağrılır. |
virtual VisitSectionEnd(Section) | Bir bölümün numaralandırılması sona erdiğinde çağrılır. |
virtual VisitSectionStart(Section) | Bir bölümün numaralandırılması başladığında çağrılır. |
virtual VisitShapeEnd(Shape) | Bir şeklin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitShapeStart(Shape) | Bir şeklin numaralandırılması başladığında çağrılır. |
virtual VisitSmartTagEnd(SmartTag) | Akıllı etiketin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitSmartTagStart(SmartTag) | Akıllı etiketin numaralandırılması başladığında çağrılır. |
virtual VisitSpecialChar(SpecialChar) | Bir çağrı yapıldığında çağrılırSpecialChar Belgede düğümle karşılaşıldı. |
virtual VisitStructuredDocumentTagEnd(StructuredDocumentTag) | Yapılandırılmış bir belge etiketinin numaralandırılması sona erdiğinde çağrılır. |
virtual VisitStructuredDocumentTagRangeEnd(StructuredDocumentTagRangeEnd) | StructuredDocumentTagRangeEnd ile karşılaşıldığında çağrılır. |
virtual VisitStructuredDocumentTagRangeStart(StructuredDocumentTagRangeStart) | StructuredDocumentTagRangeStart ile karşılaşıldığında çağrılır. |
virtual VisitStructuredDocumentTagStart(StructuredDocumentTag) | Yapılandırılmış bir belge etiketinin numaralandırılması başladığında çağrılır. |
virtual VisitSubDocument(SubDocument) | Bir alt belgeyle karşılaşıldığında çağrılır. |
virtual VisitTableEnd(Table) | Bir tablonun numaralandırılması sona erdiğinde çağrılır. |
virtual VisitTableStart(Table) | Bir tablonun numaralandırılması başladığında çağrılır. |
Notlar
İleDocumentVisitor
Belge ağacı üzerinde numaralandırma gerektiren özel operations tanımlayabilir ve çalıştırabilirsiniz.
Örneğin, Aspose.Words şunu kullanır:DocumentVisitor
dahili olarak tasarruf içinDocument
çeşitli biçimlerde ve alan veya yer imleri bulma gibi diğer işlemler için bir belge parçası üzerinde .
Kullanmak içinDocumentVisitor
:
- Türetilmiş bir sınıf oluşturun
DocumentVisitor
. - Bazı veya tüm VisitXXX yöntemleri için uygulamaları geçersiz kılın ve sağlayın ve bazı özel işlemleri gerçekleştirin.
- Arama
Düğüm.Kabul Et
üzerindeNode
sayımı başlatmak istediğiniz .
DocumentVisitor
tüm VisitXXX yöntemleri için varsayılan uygulamalar sağlar, böylece yalnızca belirli ziyaretçisi için gereken yöntemlerin geçersiz kılınması gerektiğinden yeni belge ziyaretçileri oluşturmayı kolaylaştırır. Tüm ziyaretçi yöntemlerini geçersiz kılmak gerekli değildir.
Daha fazla bilgi için Ziyaretçi tasarım desenine bakın.
Örnekler
Bir belgenin düğüm yapısını yazdırmak için belge ziyaretçisinin nasıl kullanılacağını gösterir.
public void DocStructureToText()
{
Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
DocStructurePrinter visitor = new DocStructurePrinter();
// 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 ağacını dolaşır.
/// Bu ağacın bir haritasını dize biçiminde oluşturur.
/// </summary>
public class DocStructurePrinter : DocumentVisitor
{
public DocStructurePrinter()
{
mAcceptingNodeChildTree = new StringBuilder();
}
public string GetText()
{
return mAcceptingNodeChildTree.ToString();
}
/// <summary>
/// Bir Belge düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitDocumentStart(Document doc)
{
int childNodeCount = doc.GetChildNodes(NodeType.Any, true).Count;
IndentAndAppendLine("[Document start] Child nodes: " + childNodeCount);
mDocTraversalDepth++;
// Ziyaretçinin diğer düğümleri ziyaret etmeye devam etmesine izin ver.
return VisitorAction.Continue;
}
/// <summary>
/// Bir Belge düğümünün tüm alt düğümleri ziyaret edildikten sonra çağrılır.
/// </summary>
public override VisitorAction VisitDocumentEnd(Document doc)
{
mDocTraversalDepth--;
IndentAndAppendLine("[Document end]");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir Section düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitSectionStart(Section section)
{
// Belge içerisindeki bölümümüzün dizinini al.
NodeCollection docSections = section.Document.GetChildNodes(NodeType.Section, false);
int sectionIndex = docSections.IndexOf(section);
IndentAndAppendLine("[Section start] Section index: " + sectionIndex);
mDocTraversalDepth++;
return VisitorAction.Continue;
}
/// <summary>
/// Bir Section düğümünün tüm alt düğümleri ziyaret edildikten sonra çağrılır.
/// </summary>
public override VisitorAction VisitSectionEnd(Section section)
{
mDocTraversalDepth--;
IndentAndAppendLine("[Section end]");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir Body düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitBodyStart(Body body)
{
int paragraphCount = body.Paragraphs.Count;
IndentAndAppendLine("[Body start] Paragraphs: " + paragraphCount);
mDocTraversalDepth++;
return VisitorAction.Continue;
}
/// <summary>
/// Bir Gövde düğümünün tüm alt düğümleri ziyaret edildikten sonra çağrılır.
/// </summary>
public override VisitorAction VisitBodyEnd(Body body)
{
mDocTraversalDepth--;
IndentAndAppendLine("[Body end]");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir Paragraf düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitParagraphStart(Paragraph paragraph)
{
IndentAndAppendLine("[Paragraph start]");
mDocTraversalDepth++;
return VisitorAction.Continue;
}
/// <summary>
/// Bir Paragraf düğümünün tüm alt düğümleri ziyaret edildikten sonra çağrılır.
/// </summary>
public override VisitorAction VisitParagraphEnd(Paragraph paragraph)
{
mDocTraversalDepth--;
IndentAndAppendLine("[Paragraph end]");
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)
{
IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir Alt Belge düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitSubDocument(SubDocument subDocument)
{
IndentAndAppendLine("[SubDocument]");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir Alt Belge düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitStructuredDocumentTagRangeStart(StructuredDocumentTagRangeStart sdtRangeStart)
{
IndentAndAppendLine("[SdtRangeStart]");
return VisitorAction.Continue;
}
/// <summary>
/// Belgede bir Alt Belge düğümüyle karşılaşıldığında çağrılır.
/// </summary>
public override VisitorAction VisitStructuredDocumentTagRangeEnd(StructuredDocumentTagRangeEnd sdtRangeEnd)
{
IndentAndAppendLine("[SdtRangeEnd]");
return VisitorAction.Continue;
}
/// <summary>
/// StringBuilder'a bir satır ekleyin ve ziyaretçinin belge ağacında ne kadar derine indiğine bağlı olarak girintisini ayarlayın.
/// </summary>
/// <param adı="metin"></param>
private void IndentAndAppendLine(string text)
{
for (int i = 0; i < mDocTraversalDepth; i++) mAcceptingNodeChildTree.Append("| ");
mAcceptingNodeChildTree.AppendLine(text);
}
private int mDocTraversalDepth;
private readonly StringBuilder mAcceptingNodeChildTree;
}
Ayrıca bakınız
- ad alanı Aspose.Words
- toplantı Aspose.Words