C# HtmlAgilityPack搜索行使用下一行

C# HtmlAgilityPack搜索行使用下一行,c#,html-agility-pack,C#,Html Agility Pack,我需要一点支持。我已经抓到了C#a网站。下面是我需要的一个简短的HTML: <div class="cf"> <span class="labelText ohneFeldhilfe">Name</span> <p>Firstname Lastname</p> </div> <div class="cf"> <span class="labelText ohneFeldhilfe">Cre

我需要一点支持。我已经抓到了C#a网站。下面是我需要的一个简短的HTML

<div class="cf">
  <span class="labelText ohneFeldhilfe">Name</span>
  <p>Firstname Lastname</p>
</div>
<div class="cf">
  <span class="labelText ohneFeldhilfe">Created</span>
  <p>04/04/2016</p>
</div>
<div class="cf">
  <span class="labelText ohneFeldhilfe">Edit</span>
  <p>05/05/2016</p>
</div>

名称
姓

创建 2016年4月4日

编辑 2016年5月5日

是否可以使用
HtmlAgilityPack
获取
Firstname
Lastname
?这个问题,即
class=“cf”
class=“labelText-ohneFeldhilfe”
在HTML中存在不止一次。我认为有必要搜索整行
Name


感谢您的支持

为此,您可以使用LINQ或XPath。在这里,我已经用LINQ完成了:

var html = "<div class=\"cf\">" +
            "    <span class=\"labelText ohneFeldhilfe\">Name</span>" +
            "    <p>Firstname Lastname</p>" +
            "</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);

var paragraphs = doc.DocumentNode.Descendants("div") // Get all divs..
    .Where(d => d.Attributes.Contains("class") && d.Attributes["class"].Value == "cf") // .. that have a class called cf ..
    .Select(d => d.Descendants("p").First()); // .. inside those divs select the first paragraph

foreach (var paragraph in paragraphs)
{
    var nameParts = paragraph.InnerText.Split(' ');

    Console.WriteLine("First name: " + nameParts[0]);
    Console.WriteLine("Last name: " + nameParts[1]);
}
var html=“”+
“姓名”+
“Firstname Lastname

”+ ""; var doc=新的HtmlDocument(); doc.LoadHtml(html); var段落=doc.DocumentNode.subjections(“div”)//获取所有div。。 其中(d=>d.Attributes.Contains(“类”)和&d.Attributes[“类”]。Value==“cf”)/。。有一个叫做cf的类。。 .选择(d=>d.p.First());/。。在这些div中选择第一段 foreach(段落中的var段落) { var nameParts=段落.InnerText.Split(“”); Console.WriteLine(“名字:+nameParts[0]); Console.WriteLine(“姓氏:”+nameParts[1]); }
我已经解决了

var paragraphs = document.DocumentNode.Descendants("div")
    .Where(d => d.Attributes.Contains("class") && d.Attributes["class"].Value == "cf");

foreach (var paragraph in paragraphs)
{
  if(paragraph.InnerText.StartsWith("Name")) {
    Console.WriteLine("Found");
  };
}

谢谢你的回复。但是我有不止一次的DIV标签,我只需要Firstname和Lastname。我需要看到更多的html,然后我改变了上面的html