Parser

Parser(DbConnection)

Inicializa una nueva instancia delParser clase para extraer datos de una base de datos.

public Parser(DbConnection connection)
Parámetro Escribe Descripción
connection DbConnection La conexión de la base de datos.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo extraer datos de la base de datos Sqlite:

// Crear objeto DbConnection
DbConnection connection = new SQLiteConnection(string.Format("Data Source={0};Version=3;", Constants.SampleDatabase));
// Crear una instancia de la clase Parser para extraer tablas de la base de datos
using (Parser parser = new Parser(connection))
{
    // Comprobar si se admite la extracción de texto
    if (!parser.Features.Text)
    {
        Console.WriteLine("Text extraction isn't supported.");
        return;
    }
    // Comprobar si se admite la extracción de toc
    if (!parser.Features.Toc)
    {
        Console.WriteLine("Toc extraction isn't supported.");
        return;
    }
    // Obtener una lista de tablas
    IEnumerable<TocItem> toc = parser.GetToc();
    // Iterar sobre tablas
    foreach (TocItem i in toc)
    {
        // Imprime el nombre de la tabla
        Console.WriteLine(i.Text);
        // Extrae el contenido de una tabla como texto
        using (TextReader reader = parser.GetText(i.PageIndex.Value))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

Ver también


Parser(DbConnection, ParserSettings)

Inicializa una nueva instancia delParser clase para extraer datos de una base de datos.

public Parser(DbConnection connection, ParserSettings parserSettings)
Parámetro Escribe Descripción
connection DbConnection La conexión de la base de datos.
parserSettings ParserSettings La configuración del analizador que se utiliza para personalizar la extracción de datos.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo extraer datos de la base de datos Sqlite:

// Crear objeto DbConnection
DbConnection connection = new SQLiteConnection(string.Format("Data Source={0};Version=3;", Constants.SampleDatabase));
// Crear una instancia de la clase Parser para extraer tablas de la base de datos
using (Parser parser = new Parser(connection))
{
    // Comprobar si se admite la extracción de texto
    if (!parser.Features.Text)
    {
        Console.WriteLine("Text extraction isn't supported.");
        return;
    }
    // Comprobar si se admite la extracción de toc
    if (!parser.Features.Toc)
    {
        Console.WriteLine("Toc extraction isn't supported.");
        return;
    }
    // Obtener una lista de tablas
    IEnumerable<TocItem> toc = parser.GetToc();
    // Iterar sobre tablas
    foreach (TocItem i in toc)
    {
        // Imprime el nombre de la tabla
        Console.WriteLine(i.Text);
        // Extrae el contenido de una tabla como texto
        using (TextReader reader = parser.GetText(i.PageIndex.Value))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

Ver también


Parser(EmailConnection)

Inicializa una nueva instancia delParser clase para extraer datos de un servidor de correo electrónico remoto.

public Parser(EmailConnection connection)
Parámetro Escribe Descripción
connection EmailConnection La conexión de correo electrónico.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo extraer correos electrónicos de Exchange Server:

// Crear el objeto de conexión para el protocolo de servicios web de Exchange 
EmailConnection connection = new EmailEwsConnection(
    "https://outlook.office365.com/ews/exchange.asmx",
    "email@server",
    "password");
 
// Crear una instancia de la clase Parser para extraer correos electrónicos del servidor remoto
using (Parser parser = new Parser(connection))
{
    // Comprobar si se admite la extracción de contenedores
    if (!parser.Features.Container)
    {
        Console.WriteLine("Container extraction isn't supported.");
        return;
    }

// Extraer mensajes de correo electrónico del servidor
IEnumerable<ContainerItem> emails = parser.GetContainer();
 
    // Iterar sobre adjuntos
    foreach (ContainerItem item in emails)
    {
        // Crea una instancia de la clase Parser para el mensaje de correo electrónico
        using (Parser emailParser = item.OpenParser())
        {
            // Extraer el texto del correo electrónico
            using (TextReader reader = emailParser.GetText())
            {
                // Imprimir el texto del correo electrónico
                Console.WriteLine(reader == null ? "Text extraction isn't supported." : reader.ReadToEnd());
            }
        }
    }
}   

Ver también


Parser(EmailConnection, ParserSettings)

Inicializa una nueva instancia delParser clase para extraer datos de un servidor de correo electrónico remoto.

public Parser(EmailConnection connection, ParserSettings parserSettings)
Parámetro Escribe Descripción
connection EmailConnection La conexión de correo electrónico.
parserSettings ParserSettings La configuración del analizador que se utiliza para personalizar la extracción de datos.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo extraer correos electrónicos de Exchange Server:

// Crear el objeto de conexión para el protocolo de servicios web de Exchange 
EmailConnection connection = new EmailEwsConnection(
    "https://outlook.office365.com/ews/exchange.asmx",
    "email@server",
    "password");
 
// Crear una instancia de la clase Parser para extraer correos electrónicos del servidor remoto
using (Parser parser = new Parser(connection))
{
    // Comprobar si se admite la extracción de contenedores
    if (!parser.Features.Container)
    {
        Console.WriteLine("Container extraction isn't supported.");
        return;
    }

// Extraer mensajes de correo electrónico del servidor
IEnumerable<ContainerItem> emails = parser.GetContainer();
 
    // Iterar sobre adjuntos
    foreach (ContainerItem item in emails)
    {
        // Crea una instancia de la clase Parser para el mensaje de correo electrónico
        using (Parser emailParser = item.OpenParser())
        {
            // Extraer el texto del correo electrónico
            using (TextReader reader = emailParser.GetText())
            {
                // Imprimir el texto del correo electrónico
                Console.WriteLine(reader == null ? "Text extraction isn't supported." : reader.ReadToEnd());
            }
        }
    }
}   

Ver también


Parser(string)

Inicializa una nueva instancia delParser clase.

public Parser(string filePath)
Parámetro Escribe Descripción
filePath String La ruta al archivo.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo cargar el documento desde el disco local:

// Crear una instancia de la clase Parser con filePath
using (Parser parser = new Parser(filePath))
{
    // Extraer un texto en el lector
    using (TextReader reader = parser.GetText())
    {
        // Imprime un texto del documento
        // Si no se admite la extracción de texto, un lector es nulo
        Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
    }
}

Ver también


Parser(string, LoadOptions)

Inicializa una nueva instancia delParser clase conLoadOptions .

public Parser(string filePath, LoadOptions loadOptions)
Parámetro Escribe Descripción
filePath String La ruta al archivo.
loadOptions LoadOptions Las opciones para abrir el archivo.

Observaciones

Aprende más:

Ejemplos

La contraseña del documento es pasada por la clase LoadOptions:

try
{
    // Crea una instancia de la clase Parser con la contraseña:
    using (Parser parser = new Parser(filePath, new LoadOptions(password)))
    {
        // Comprobar si se admite la extracción de texto
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Imprime el texto del documento
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    // Imprimir el mensaje si la contraseña es incorrecta o está vacía
    Console.WriteLine("Invalid password");
}

Ver también


Parser(string, ParserSettings)

Inicializa una nueva instancia delParser clase conParserSettings .

public Parser(string filePath, ParserSettings parserSettings)
Parámetro Escribe Descripción
filePath String La ruta al archivo.
parserSettings ParserSettings La configuración del analizador que se utiliza para personalizar la extracción de datos.

Ver también


Parser(string, LoadOptions, ParserSettings)

Inicializa una nueva instancia delParser clase conLoadOptions yParserSettings .

public Parser(string filePath, LoadOptions loadOptions, ParserSettings parserSettings)
Parámetro Escribe Descripción
filePath String La ruta al archivo.
loadOptions LoadOptions Las opciones para abrir el archivo.
parserSettings ParserSettings La configuración del analizador que se utiliza para personalizar la extracción de datos.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo recibir la información a través deILogger interfaz:

// intentar
{
    // Crea una instancia de la clase Logger
    Logger logger = new Logger();
    // Crea una instancia de la clase Parser con la configuración del analizador
    using (Parser parser = new Parser(filePath, null, new ParserSettings(logger)))
    {
        // Comprobar si se admite la extracción de texto
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Imprime el texto del documento
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    ; // Ignorar la excepción
}
 
private class Logger : ILogger
{
    public void Error(string message, Exception exception)
    {
        // Imprimir mensaje de error
        Console.WriteLine("Error: " + message);
    }
    public void Trace(string message)
    {
        // Imprimir mensaje de evento
        Console.WriteLine("Event: " + message);
    }
    public void Warning(string message)
    {
        // Imprimir mensaje de advertencia
        Console.WriteLine("Warning: " + message);
    }
}

Ver también


Parser(Stream)

Inicializa una nueva instancia delParser clase.

public Parser(Stream document)
Parámetro Escribe Descripción
document Stream El flujo de entrada de origen.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo cargar el documento desde la secuencia:

// Crea una instancia de la clase Parser con la transmisión
using (Parser parser = new Parser(stream))
{
    // Extraer un texto en el lector
    using (TextReader reader = parser.GetText())
    {
        // Imprime un texto del documento
        // Si no se admite la extracción de texto, un lector es nulo
        Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
    }
}

Ver también


Parser(Stream, LoadOptions)

Inicializa una nueva instancia delParser clase conLoadOptions .

public Parser(Stream document, LoadOptions loadOptions)
Parámetro Escribe Descripción
document Stream El flujo de entrada de origen.
loadOptions LoadOptions Las opciones para abrir el archivo.

Observaciones

Aprende más:

Ejemplos

En algunos casos es necesario definirFileFormat. Tanto para casos especiales (bases de datos, servidor de correo) como para detectar tipos de archivos por el contenido:

La contraseña del documento es pasada porLoadOptions clase:

// Crear una instancia de la clase Parser para el documento de rebajas
using (Parser parser = new Parser(stream, new LoadOptions(FileFormat.Markup)))
{
    // Comprobar si se admite la extracción de texto
    if (!parser.Features.Text)
    {
        Console.WriteLine("Text extraction isn't supported.");
        return;
    }
    using (TextReader reader = parser.GetText())
    {
        // Imprime el texto del documento
        // Se detecta rebaja; se imprime texto sin símbolos especiales
        Console.WriteLine(reader.ReadToEnd());
    }
}
try
{
    // Crea una instancia de la clase Parser con la contraseña:
    using (Parser parser = new Parser(filePath, new LoadOptions(password)))
    {
        // Comprobar si se admite la extracción de texto
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Imprime el texto del documento
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    // Imprimir el mensaje si la contraseña es incorrecta o está vacía
    Console.WriteLine("Invalid password");
}

Ver también


Parser(Stream, ParserSettings)

Inicializa una nueva instancia delParser clase conParserSettings .

public Parser(Stream document, ParserSettings parserSettings)
Parámetro Escribe Descripción
document Stream El flujo de entrada de origen.
parserSettings ParserSettings La configuración del analizador que se utiliza para personalizar la extracción de datos.

Ver también


Parser(Stream, LoadOptions, ParserSettings)

Inicializa una nueva instancia delParser clase conLoadOptions yParserSettings .

public Parser(Stream document, LoadOptions loadOptions, ParserSettings parserSettings)
Parámetro Escribe Descripción
document Stream El flujo de entrada de origen.
loadOptions LoadOptions Las opciones para abrir el archivo.
parserSettings ParserSettings La configuración del analizador que se utiliza para personalizar la extracción de datos.

Observaciones

Aprende más:

Ejemplos

El siguiente ejemplo muestra cómo recibir la información a través deILogger interfaz:

// intentar
{
    // Crea una instancia de la clase Logger
    Logger logger = new Logger();
    // Crea una instancia de la clase Parser con la configuración del analizador
    using (Parser parser = new Parser(stream, null, new ParserSettings(logger)))
    {
        // Comprobar si se admite la extracción de texto
        if (!parser.Features.Text)
        {
            Console.WriteLine("Text extraction isn't supported.");
            return;
        }
        // Imprime el texto del documento
        using (TextReader reader = parser.GetText())
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
catch (InvalidPasswordException)
{
    ; // Ignorar la excepción
}
 
private class Logger : ILogger
{
    public void Error(string message, Exception exception)
    {
        // Imprimir mensaje de error
        Console.WriteLine("Error: " + message);
    }
    public void Trace(string message)
    {
        // Imprimir mensaje de evento
        Console.WriteLine("Event: " + message);
    }
    public void Warning(string message)
    {
        // Imprimir mensaje de advertencia
        Console.WriteLine("Warning: " + message);
    }
}

Ver también