- 15 Abril 2010
- Sem categoria
- 0 Comments
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


