Html Agility Pack:如何解析webresponse并在c#中获取指定的html元素

时间:2012-04-30 05:07:26

标签: c# html parsing html-agility-pack

我搜索了我的问题,发现Html Agility Pack要解析html中的c#。但是没有好的例子,我不能用它来实现我的目的。我有一个html document,它有一个像这样的部分:

<div class="pray-times-holder">
    <div class="pray-time">
        <div class="labels">
            Time1:</div>
        04:28:24
    </div>
    <div class="pray-time">
        <div class="labels">
            Time2:</div>
        06:04:41
    </div>
</div>

我想获得Time1Time2的值。例如Time1的值为04:28:24Time2的值为06:04:41,我希望获得这些值。你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

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

var results = doc.DocumentNode
    .Descendants("div")
    .Where(n => n.Attributes["class"] != null && n.Attributes["class"].Value == "pray-time")
    .Select(n => n.InnerText.Replace("\r\n","").Trim())
    .ToArray();

答案 1 :(得分:1)

此控制台应用程序代码:

 HtmlDocument doc = new HtmlDocument();
 doc.Load(yourHtml);
 foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class = 'labels']"))
 {
     Console.WriteLine(node.NextSibling.InnerText.Trim());
 }

将输出:

04:28:24
06:04:41