none
Pegar conteúdo de uma tag HTML RRS feed

  • Pergunta

  • Olá pessoal tudo bem?
    Tenho uma dúvida de como pegar o conteúdo que está entre os <>, segue um exemplo abaixo

    <
    td class=tabela width=440>
    Avenida Doutor Nelson D'Ávila, 508 - Centro</td></tr>

    Quero pegar somente o "Avenida Doutor Nelson D'Ávila, 508 - Centro"
    Há alguma maneira de se fazer isso?

    Obrigado a todos e um feliz 2010!!!!!!

    Abraços

    Ediberto Alves - "Se a resposta for útil, marque-a. Ajude no bom funcionamento do fórum."
    quarta-feira, 30 de dezembro de 2009 11:52

Respostas

  • private static HtmlDocument CreateHtmlDocument(string htmlSource)
            {
                using (var webControl = new WebBrowser())
                {
                    webControl.DocumentText = htmlSource;
                    while (webControl.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
                    return webControl.Document;
                }
            }
    
            private string[] Test()
            {
                var result = new List<String>();
                var html = CreateHtmlDocument("<html></html>");
                var tables = html.GetElementsByTagName("Table");
                foreach (HtmlElement table in tables)
                {
                    var tableRows = table.GetElementsByTagName("tr");
                    foreach (HtmlElement tr in tableRows)
                    {
                        var tableRowCells = tr.GetElementsByTagName("td");
                        foreach (HtmlElement td in tableRowCells)
                        {
                            result.Add(td.InnerHtml);
                        }
                    }
                }
    
                return result.ToArray();
            }
    Vc pode usar o WebControl para criar um HtmlDocument... e assim poder ler tranquilamente as tags html
    What would Brian Boitano do ? ((2B || !2B) is Question) ?
    quarta-feira, 30 de dezembro de 2009 14:05
    Moderador

Todas as Respostas

  • Ediberto tente assim:

    <td class="tabela" width="440"  id="tdRua" runat="server">Avenida Doutor Nelson D'Ávila, 508 - Centro</td>

    Code Behind

    String rua = tdRua.InnerHtml;
    []´s
    quarta-feira, 30 de dezembro de 2009 11:55
  • Thiago,
    Se a tag tivesse "id".... mas não tem...rs
    Segue abaixo um trecho:

    <tr><td class=tabela width=160><b>Endereço</b></td><td class=tabela width=440>Avenida Doutor Nelson D'Ávila, 508 - Centro</td></tr>
    <tr><td class=tabela width=160><b>Cidade</b></td><td class=tabela width=440>SAO JOSE DOS CAMPOS
    </td></tr>
    

    tenho que pegar somente:

    Avenida Doutor Nelson D'Ávila, 508 - Centro
    SAO JOSE DOS CAMPOS

    Alguma outra sugestão??

    Obrigado!

    Ediberto Alves - "Se a resposta for útil, marque-a. Ajude no bom funcionamento do fórum."
    quarta-feira, 30 de dezembro de 2009 12:47
  • Edilberto,

    Sem o ID acho que você consegue fazer com javascript porém terá um trabalho muito grande para fazer isso, você não pode colocar o ID?

    Em .NET você talvez consiga fazer desta forma:
    String rua = ((System.Web.UI.LiteralControl)(this.form1.Controls[5].Controls[0])).Text;

    Porém você precisará ter a certeza que existirá o LiteralControl na posição indicada.

    []´s
    quarta-feira, 30 de dezembro de 2009 12:52
  • private static HtmlDocument CreateHtmlDocument(string htmlSource)
            {
                using (var webControl = new WebBrowser())
                {
                    webControl.DocumentText = htmlSource;
                    while (webControl.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
                    return webControl.Document;
                }
            }
    
            private string[] Test()
            {
                var result = new List<String>();
                var html = CreateHtmlDocument("<html></html>");
                var tables = html.GetElementsByTagName("Table");
                foreach (HtmlElement table in tables)
                {
                    var tableRows = table.GetElementsByTagName("tr");
                    foreach (HtmlElement tr in tableRows)
                    {
                        var tableRowCells = tr.GetElementsByTagName("td");
                        foreach (HtmlElement td in tableRowCells)
                        {
                            result.Add(td.InnerHtml);
                        }
                    }
                }
    
                return result.ToArray();
            }
    Vc pode usar o WebControl para criar um HtmlDocument... e assim poder ler tranquilamente as tags html
    What would Brian Boitano do ? ((2B || !2B) is Question) ?
    quarta-feira, 30 de dezembro de 2009 14:05
    Moderador