0

在 HTML 页面上,我有类似的东西

<table class="information">
<tbody>
<tr>
<td class="name">Name:</td>
<td><a href="example.com">John</a></td>
</tr>
<tr>
<td>...</td>
<td>...</td>
</tr>
....
</tbody>
</table>

如何检索名称(还有其他信息,但在我的示例中我只写了名称)?

注意:HTML 有不止一张表

我试过这个

foreach (HtmlElement item in wb.Document.GetElementsByTagName("table"))
{
    if (item.OuterHtml.Contains("information"))
    {
        ... //Here i don't know how to continue
    }
} 
4

3 回答 3

2
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var table = doc.DocumentNode.SelectSingleNode("//table[@class='information']");
var td = table.SelectSingleNode("//td[@class='name']");

Console.WriteLine(td.InnerText);

或者

var text = doc.DocumentNode.Descendants("td")
    .First(td => td.Attributes["class"] != null && td.Attributes["class"].Value == "name")
    .InnerText;
于 2012-09-10T09:40:21.180 回答
1
HtmlElementCollection tData = wb.Document.GetElementsByTagName("td");

                foreach (HtmlElement td in tData)
                {
                    string name = "";
                    if (td.GetAttribute("classname") == "name")
                    {
                        name = td.InnerText;
                    }
                }
于 2012-09-10T09:47:30.987 回答
0

查看HtmlAgilityPack - 它是免费且非常好的库,可用于处理 html 源代码。

于 2012-09-10T09:34:18.573 回答