Currently Browsing

Posts Tagged ‘ LINQ ’

Extrair texto entre tags HTML (LINQ+Regex)

Hoje o meu colega de trabalho pediu-me para o ajudar a extrair uma parte do texto de uma página p/ ser posteriormente enviado.

Não se trata nada de complexo, apenas apeteceu-me deixar aqui p/ consultar mais tarde caso precise :)

O HTML da página que deve ser pesquisado é algo como:

<TD valign=top colspan=6>TESTE 1XPTO ONLINE</TD>

Para o fazer, fiz o seguinte código:

Regex r = new Regex("<TD(.*?)>(.*?)</TD>");
string s = @"<TD valign=top colspan=6>TESTE 1XPTO ONLINE</TD>
            <TD valign=top colspan=6>TESTE 2XPTO ONLINE</TD>
            <TD valign=top colspan=6>TESTE 3XPTO ONLINE</TD>
            <TD valign=top colspan=6>TESTE 4XPTO ONLINE</TD>
            <TD valign=top colspan=6>TESTE 5XPTO ONLINE</TD>";
 
MatchCollection mc = r.Matches(s);
foreach (Match m in mc)
{
    Console.WriteLine(m.Groups[2].Value.Trim());
}

Outra forma de fazer o mesmo, e recorrendo ao LINQ, é esta:

var q = from Match m in new Regex(@"<TD(.*?)>(.*?)</TD>").Matches(s)
        select m.Groups[2].Value.Trim();
 
q.ToArray<string>().ToList().ForEach(new Action<string>(EnviarSinais));

Por fim, basta criar a função EnviarSinais:

static void EnviarSinais(string str)
{
        Console.WriteLine(str);
}

Quanto ao código em LINQ, se houver melhor forma de o fazer, indiquem pf :)

Livro LINQ com C#

Foi lançado o livro de LINQ com C#, escrito pelo Paulo Morgado e pelo Luis Abreu.

Certamente que temos aqui uma boa referência para este tema, tendo em conta a qualidade de informação que estamos habituados a ver cedidas por ambos os autores.

Podem encontrar o livro na FCA, na FNAC e na WOOM.

Blogroll