Parser

Parser(DbConnection)

Инициализирует новый экземплярParser класс для извлечения данных из базы данных.

public Parser(DbConnection connection)
Параметр Тип Описание
connection DbConnection Подключение к базе данных.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как извлечь данные из базы данных Sqlite:

// Создаем объект DbConnection
DbConnection connection = new SQLiteConnection(string.Format("Data Source={0};Version=3;", Constants.SampleDatabase));
// Создаем экземпляр класса Parser для извлечения таблиц из базы данных
using (Parser parser = new Parser(connection))
{
    // Проверяем, поддерживается ли извлечение текста
    if (!parser.Features.Text)
    {
        Console.WriteLine("Text extraction isn't supported.");
        return;
    }
    // Проверяем, поддерживается ли извлечение toc
    if (!parser.Features.Toc)
    {
        Console.WriteLine("Toc extraction isn't supported.");
        return;
    }
    // Получаем список таблиц
    IEnumerable<TocItem> toc = parser.GetToc();
    // Итерация по таблицам
    foreach (TocItem i in toc)
    {
        // Печатаем имя таблицы
        Console.WriteLine(i.Text);
        // Извлечь содержимое таблицы как текст
        using (TextReader reader = parser.GetText(i.PageIndex.Value))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

Смотрите также


Parser(DbConnection, ParserSettings)

Инициализирует новый экземплярParser класс для извлечения данных из базы данных.

public Parser(DbConnection connection, ParserSettings parserSettings)
Параметр Тип Описание
connection DbConnection Подключение к базе данных.
parserSettings ParserSettings Настройки парсера, которые используются для настройки извлечения данных.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как извлечь данные из базы данных Sqlite:

// Создаем объект DbConnection
DbConnection connection = new SQLiteConnection(string.Format("Data Source={0};Version=3;", Constants.SampleDatabase));
// Создаем экземпляр класса Parser для извлечения таблиц из базы данных
using (Parser parser = new Parser(connection))
{
    // Проверяем, поддерживается ли извлечение текста
    if (!parser.Features.Text)
    {
        Console.WriteLine("Text extraction isn't supported.");
        return;
    }
    // Проверяем, поддерживается ли извлечение toc
    if (!parser.Features.Toc)
    {
        Console.WriteLine("Toc extraction isn't supported.");
        return;
    }
    // Получаем список таблиц
    IEnumerable<TocItem> toc = parser.GetToc();
    // Итерация по таблицам
    foreach (TocItem i in toc)
    {
        // Печатаем имя таблицы
        Console.WriteLine(i.Text);
        // Извлечь содержимое таблицы как текст
        using (TextReader reader = parser.GetText(i.PageIndex.Value))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

Смотрите также


Parser(EmailConnection)

Инициализирует новый экземплярParser класс для извлечения данных с удаленного почтового сервера.

public Parser(EmailConnection connection)
Параметр Тип Описание
connection EmailConnection Соединение с электронной почтой.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как извлекать электронные письма из Exchange Server:

// Создаем объект соединения для протокола Exchange Web Services 
EmailConnection connection = new EmailEwsConnection(
    "https://outlook.office365.com/ews/exchange.asmx",
    "email@server",
    "password");
 
// Создаем экземпляр класса Parser для извлечения писем с удаленного сервера
using (Parser parser = new Parser(connection))
{
    // Проверяем, поддерживается ли извлечение контейнера
    if (!parser.Features.Container)
    {
        Console.WriteLine("Container extraction isn't supported.");
        return;
    }

// Извлечение сообщений электронной почты с сервера
IEnumerable<ContainerItem> emails = parser.GetContainer();
 
    // Перебираем вложения
    foreach (ContainerItem item in emails)
    {
        // Создаем экземпляр класса Parser для сообщения электронной почты
        using (Parser emailParser = item.OpenParser())
        {
            // Извлечь текст электронной почты
            using (TextReader reader = emailParser.GetText())
            {
                // Печатаем текст письма
                Console.WriteLine(reader == null ? "Text extraction isn't supported." : reader.ReadToEnd());
            }
        }
    }
}   

Смотрите также


Parser(EmailConnection, ParserSettings)

Инициализирует новый экземплярParser класс для извлечения данных с удаленного почтового сервера.

public Parser(EmailConnection connection, ParserSettings parserSettings)
Параметр Тип Описание
connection EmailConnection Соединение с электронной почтой.
parserSettings ParserSettings Настройки парсера, которые используются для настройки извлечения данных.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как извлекать электронные письма из Exchange Server:

// Создаем объект соединения для протокола Exchange Web Services 
EmailConnection connection = new EmailEwsConnection(
    "https://outlook.office365.com/ews/exchange.asmx",
    "email@server",
    "password");
 
// Создаем экземпляр класса Parser для извлечения писем с удаленного сервера
using (Parser parser = new Parser(connection))
{
    // Проверяем, поддерживается ли извлечение контейнера
    if (!parser.Features.Container)
    {
        Console.WriteLine("Container extraction isn't supported.");
        return;
    }

// Извлечение сообщений электронной почты с сервера
IEnumerable<ContainerItem> emails = parser.GetContainer();
 
    // Перебираем вложения
    foreach (ContainerItem item in emails)
    {
        // Создаем экземпляр класса Parser для сообщения электронной почты
        using (Parser emailParser = item.OpenParser())
        {
            // Извлечь текст электронной почты
            using (TextReader reader = emailParser.GetText())
            {
                // Печатаем текст письма
                Console.WriteLine(reader == null ? "Text extraction isn't supported." : reader.ReadToEnd());
            }
        }
    }
}   

Смотрите также


Parser(string)

Инициализирует новый экземплярParser класс.

public Parser(string filePath)
Параметр Тип Описание
filePath String Путь к файлу.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как загрузить документ с локального диска:

// Создаем экземпляр класса Parser с filePath
using (Parser parser = new Parser(filePath))
{
    // Извлечь текст в ридер
    using (TextReader reader = parser.GetText())
    {
        // Печатаем текст из документа
        // Если извлечение текста не поддерживается, читатель имеет значение null
        Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
    }
}

Смотрите также


Parser(string, LoadOptions)

Инициализирует новый экземплярParser класс сLoadOptions .

public Parser(string filePath, LoadOptions loadOptions)
Параметр Тип Описание
filePath String Путь к файлу.
loadOptions LoadOptions Варианты открытия файла.

Примечания

Узнать больше:

Примеры

Пароль документа передается классом LoadOptions:

try
{
    // Создаем экземпляр класса Parser с паролем:
    using (Parser parser = new Parser(filePath, new LoadOptions(password)))
    {
        // Проверяем, поддерживается ли извлечение текста
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Печатаем текст документа
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    // Печатаем сообщение, если пароль неверный или пустой
    Console.WriteLine("Invalid password");
}

Смотрите также


Parser(string, ParserSettings)

Инициализирует новый экземплярParser класс сParserSettings .

public Parser(string filePath, ParserSettings parserSettings)
Параметр Тип Описание
filePath String Путь к файлу.
parserSettings ParserSettings Настройки парсера, которые используются для настройки извлечения данных.

Смотрите также


Parser(string, LoadOptions, ParserSettings)

Инициализирует новый экземплярParser класс сLoadOptions иParserSettings .

public Parser(string filePath, LoadOptions loadOptions, ParserSettings parserSettings)
Параметр Тип Описание
filePath String Путь к файлу.
loadOptions LoadOptions Варианты открытия файла.
parserSettings ParserSettings Настройки парсера, которые используются для настройки извлечения данных.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как получить информацию черезILogger интерфейс:

// пытаться
{
    // Создаем экземпляр класса Logger
    Logger logger = new Logger();
    // Создаем экземпляр класса Parser с настройками парсера
    using (Parser parser = new Parser(filePath, null, new ParserSettings(logger)))
    {
        // Проверяем, поддерживается ли извлечение текста
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Печатаем текст документа
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    ; // Игнорировать исключение
}
 
private class Logger : ILogger
{
    public void Error(string message, Exception exception)
    {
        // Распечатать сообщение об ошибке
        Console.WriteLine("Error: " + message);
    }
    public void Trace(string message)
    {
        // Распечатать сообщение о событии
        Console.WriteLine("Event: " + message);
    }
    public void Warning(string message)
    {
        // Печатаем предупреждающее сообщение
        Console.WriteLine("Warning: " + message);
    }
}

Смотрите также


Parser(Stream)

Инициализирует новый экземплярParser класс.

public Parser(Stream document)
Параметр Тип Описание
document Stream Исходный входной поток.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как загрузить документ из потока:

// Создаем экземпляр класса Parser с потоком
using (Parser parser = new Parser(stream))
{
    // Извлечь текст в ридер
    using (TextReader reader = parser.GetText())
    {
        // Печатаем текст из документа
        // Если извлечение текста не поддерживается, читатель имеет значение null
        Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
    }
}

Смотрите также


Parser(Stream, LoadOptions)

Инициализирует новый экземплярParser класс сLoadOptions .

public Parser(Stream document, LoadOptions loadOptions)
Параметр Тип Описание
document Stream Исходный входной поток.
loadOptions LoadOptions Варианты открытия файла.

Примечания

Узнать больше:

Примеры

В некоторых случаях необходимо определитьFileFormat. Как для частных случаев (базы данных, почтовый сервер), так и для определения типов файлов по содержимому:

Пароль документа передаетсяLoadOptions сорт:

// Создаем экземпляр класса Parser для документа уценки
using (Parser parser = new Parser(stream, new LoadOptions(FileFormat.Markup)))
{
    // Проверяем, поддерживается ли извлечение текста
    if (!parser.Features.Text)
    {
        Console.WriteLine("Text extraction isn't supported.");
        return;
    }
    using (TextReader reader = parser.GetText())
    {
        // Печатаем текст документа
        // Обнаружена уценка; печатается текст без специальных символов
        Console.WriteLine(reader.ReadToEnd());
    }
}
try
{
    // Создаем экземпляр класса Parser с паролем:
    using (Parser parser = new Parser(filePath, new LoadOptions(password)))
    {
        // Проверяем, поддерживается ли извлечение текста
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Печатаем текст документа
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    // Печатаем сообщение, если пароль неверный или пустой
    Console.WriteLine("Invalid password");
}

Смотрите также


Parser(Stream, ParserSettings)

Инициализирует новый экземплярParser класс сParserSettings .

public Parser(Stream document, ParserSettings parserSettings)
Параметр Тип Описание
document Stream Исходный входной поток.
parserSettings ParserSettings Настройки парсера, которые используются для настройки извлечения данных.

Смотрите также


Parser(Stream, LoadOptions, ParserSettings)

Инициализирует новый экземплярParser класс сLoadOptions иParserSettings .

public Parser(Stream document, LoadOptions loadOptions, ParserSettings parserSettings)
Параметр Тип Описание
document Stream Исходный входной поток.
loadOptions LoadOptions Варианты открытия файла.
parserSettings ParserSettings Настройки парсера, которые используются для настройки извлечения данных.

Примечания

Узнать больше:

Примеры

В следующем примере показано, как получить информацию черезILogger интерфейс:

// пытаться
{
    // Создаем экземпляр класса Logger
    Logger logger = new Logger();
    // Создаем экземпляр класса Parser с настройками парсера
    using (Parser parser = new Parser(stream, null, new ParserSettings(logger)))
    {
        // Проверяем, поддерживается ли извлечение текста
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Печатаем текст документа
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    ; // Игнорировать исключение
}
 
private class Logger : ILogger
{
    public void Error(string message, Exception exception)
    {
        // Распечатать сообщение об ошибке
        Console.WriteLine("Error: " + message);
    }
    public void Trace(string message)
    {
        // Распечатать сообщение о событии
        Console.WriteLine("Event: " + message);
    }
    public void Warning(string message)
    {
        // Печатаем предупреждающее сообщение
        Console.WriteLine("Warning: " + message);
    }
}

Смотрите также