Class DocumentVisitor
अंतर्वस्तु
[
छिपाना
]DocumentVisitor class
निर्दिष्ट नोड पर रूट के साथ सबट्री के माध्यम से पुनरावृति के लिए सार वर्ग।
public abstract class DocumentVisitor
तरीकों
नाम | विवरण |
---|---|
virtual VisitAttachedFileEnd(AttachedFile) | पर जाना समाप्त करेंAttachedFile नोड. |
virtual VisitAttachedFileStart(AttachedFile) | पर जाना शुरू करेंAttachedFile नोड. |
virtual VisitDocumentEnd(Document) | पर जाना समाप्त करेंDocument नोड. |
virtual VisitDocumentStart(Document) | पर जाना शुरू करेंDocument नोड. |
virtual VisitImageEnd(Image) | पर जाना समाप्त करेंImage नोड. |
virtual VisitImageStart(Image) | पर जाना शुरू करेंImage नोड. |
virtual VisitOutlineElementEnd(OutlineElement) | पर जाना समाप्त करेंOutlineElement नोड. |
virtual VisitOutlineElementStart(OutlineElement) | पर जाना शुरू करेंOutlineElement नोड. |
virtual VisitOutlineEnd(Outline) | पर जाना समाप्त करेंOutline नोड. |
virtual VisitOutlineGroupEnd(OutlineGroup) | पर जाना समाप्त करेंOutlineGroup नोड. |
virtual VisitOutlineGroupStart(OutlineGroup) | पर जाना शुरू करेंOutlineGroup नोड. |
virtual VisitOutlineStart(Outline) | पर जाना शुरू करेंOutline नोड. |
virtual VisitPageEnd(Page) | पर जाना समाप्त करेंPage नोड. |
virtual VisitPageStart(Page) | पर जाना शुरू करेंPage नोड. |
virtual VisitRichTextEnd(RichText) | पर जाना समाप्त करेंRichText नोड. |
virtual VisitRichTextStart(RichText) | पर जाना शुरू करेंRichText नोड. |
virtual VisitTableCellEnd(TableCell) | पर जाना समाप्त करेंTableCell नोड. |
virtual VisitTableCellStart(TableCell) | पर जाना शुरू करेंTableCell नोड. |
virtual VisitTableEnd(Table) | पर जाना समाप्त करेंTable नोड. |
virtual VisitTableRowEnd(TableRow) | पर जाना समाप्त करेंTableRow नोड. |
virtual VisitTableRowStart(TableRow) | पर जाना शुरू करेंTableRow नोड. |
virtual VisitTableStart(Table) | पर जाना शुरू करेंTable नोड. |
virtual VisitTitleEnd(Title) | पर जाना समाप्त करेंTitle नोड. |
virtual VisitTitleStart(Title) | पर जाना शुरू करेंTitle नोड. |
उदाहरण
विज़िटर का उपयोग करके किसी दस्तावेज़ की सामग्री तक पहुँचने का तरीका दिखाता है।
public static void Run()
{
// दस्तावेज़ निर्देशिका का पथ।
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// वह दस्तावेज़ खोलें जिसे हम कनवर्ट करना चाहते हैं।
Document doc = new Document(dataDir + "Aspose.one");
// एक ऐसी वस्तु बनाएँ जो DocumentVisitor वर्ग से विरासत में मिली हो।
MyOneNoteToTxtWriter myConverter = new MyOneNoteToTxtWriter();
// यह प्रसिद्ध विज़िटर पैटर्न है। एक आगंतुक को स्वीकार करने के लिए मॉडल प्राप्त करें।
// संबंधित विधियों को कॉल करके मॉडल स्वयं के माध्यम से पुनरावृति करेगा
// विज़िटर ऑब्जेक्ट पर (इसे विज़िटिंग कहा जाता है)।
//
// ध्यान दें कि ऑब्जेक्ट मॉडल में प्रत्येक नोड में एक्सेप्ट मेथड है इसलिए विजिटिंग
// न केवल पूरे दस्तावेज़ के लिए, बल्कि दस्तावेज़ में किसी भी नोड के लिए निष्पादित किया जा सकता है।
doc.Accept(myConverter);
// एक बार दौरा पूरा हो जाने के बाद, हम ऑपरेशन के परिणाम को पुनः प्राप्त कर सकते हैं,
// कि इस उदाहरण में, विज़िटर में जमा हो गया है।
Console.WriteLine(myConverter.GetText());
Console.WriteLine(myConverter.NodeCount);
}
/// <summary>
/// सादे पाठ प्रारूप में दस्तावेज़ को सहेजने का सरल कार्यान्वयन। एक आगंतुक के रूप में लागू किया गया।
/// </summary>
public class MyOneNoteToTxtWriter : DocumentVisitor
{
public MyOneNoteToTxtWriter()
{
nodecount = 0;
mIsSkipText = false;
mBuilder = new StringBuilder();
}
/// <summary>
/// आगंतुक द्वारा जमा किए गए दस्तावेज़ का सादा पाठ प्राप्त करता है।
/// </summary>
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// वर्तमान आउटपुट में टेक्स्ट जोड़ता है। सक्षम/अक्षम आउटपुट फ़्लैग का सम्मान करता है।
/// </summary>
private void AppendText(string text)
{
if (!mIsSkipText)
{
mBuilder.AppendLine(text);
}
}
/// <summary>
/// जब दस्तावेज़ में एक RichText नोड का सामना किया जाता है तो कॉल किया जाता है।
/// </summary>
public override void VisitRichTextStart(RichText run)
{
++nodecount;
AppendText(run.Text);
}
/// <summary>
/// जब दस्तावेज़ में दस्तावेज़ नोड का सामना किया जाता है तो कॉल किया जाता है।
/// </summary>
public override void VisitDocumentStart(Document document)
{
++nodecount;
}
/// <summary>
/// कॉल किया जाता है जब दस्तावेज़ में पृष्ठ नोड का सामना होता है।
/// </summary>
public override void VisitPageStart(Page page)
{
++nodecount;
this.AppendText($"*** Page '{page.Title?.TitleText?.Text ?? "(no title)"}' ***");
}
/// <summary>
/// पेज नोड की प्रोसेसिंग समाप्त होने पर कॉल किया जाता है।
/// </summary>
public override void VisitPageEnd(Page page)
{
this.AppendText(string.Empty);
}
/// <summary>
/// जब दस्तावेज़ में शीर्षक नोड का सामना किया जाता है तो कॉल किया जाता है।
/// </summary>
public override void VisitTitleStart(Title title)
{
++nodecount;
}
/// <summary>
/// दस्तावेज़ में एक छवि नोड का सामना करने पर कॉल किया जाता है।
/// </summary>
public override void VisitImageStart(Image image)
{
++nodecount;
}
/// <summary>
/// कॉल किया जाता है जब दस्तावेज़ में एक OutlineGroup नोड का सामना होता है।
/// </summary>
public override void VisitOutlineGroupStart(OutlineGroup outlineGroup)
{
++nodecount;
}
/// <summary>
/// कॉल किया जाता है जब दस्तावेज़ में एक रूपरेखा नोड का सामना करना पड़ता है।
/// </summary>
public override void VisitOutlineStart(Outline outline)
{
++nodecount;
}
/// <summary>
/// कॉल किया जाता है जब दस्तावेज़ में एक OutlineElement नोड का सामना होता है।
/// </summary>
public override void VisitOutlineElementStart(OutlineElement outlineElement)
{
++nodecount;
}
/// <summary>
/// विज़िटर द्वारा नोड्स की कुल संख्या प्राप्त करता है
/// </summary>
public Int32 NodeCount
{
get { return this.nodecount; }
}
private readonly StringBuilder mBuilder;
private bool mIsSkipText;
private Int32 nodecount;
}
यह सभी देखें
- नाम स्थान Aspose.Note
- सभा Aspose.Note