如何搜索html表行?

时间:2013-07-19 20:08:10

标签: c# html .net

使用Windows窗体和C#。 例如......

         <table id=tbl>
          <tbody>
          <tr>
            <td>HELLO</td>
            <td>YES</td>
            <td>TEST</td>
          </tr>
          <tr>
            <td>BLAH BLAH</td>
            <td>YES</td>
            <td>TEST</td>
          </tr>
         </tbody>
         </table>

我使用WebBrowser控件加载页面。页面加载完美。 我要做的下一件事是搜索表中的所有行并检查它们是否包含特定值;例如在这种情况下是YES。 如果它们包含它我想把行传递给我,所以我可以将它存储为字符串。 但我希望行以HTML格式。 (包含标签)。

我怎样才能做到这一点? 请帮帮我。

2 个答案:

答案 0 :(得分:1)

您可以使用HtmlAgilityPack轻松解析html。例如,要获取所有TD元素,您可以执行以下操作:

string value = @"         <table id=tbl>
              <tbody>
              <tr>
                <td>HELLO</td>
                <td>YES</td>
                <td>TEST</td>
              </tr>
              <tr>
                <td>BLAH BLAH</td>
                <td>YES</td>
                <td>TEST</td>
              </tr>
             </tbody>
             </table>";

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(value);

var nodes = doc.GetElementbyId("tbl").SelectNodes("tbody/tr/td");
foreach (var node in nodes)
{
    Debug.WriteLine(node.InnerText);
}

答案 1 :(得分:0)

你可以使用这个:http://simplehtmldom.sourceforge.net/,它是如何在HTML文件中搜索的非常简单的方法

只需将simple_html_dom.php包含在您的文件中,然后按照本手册操作即可 http://simplehtmldom.sourceforge.net/manual.htm

你的php代码看起来像

$html = file_get_html('File.html');

foreach($html->find('td') as $element) 
   echo $element->text. '<br>';