C# HtmlAgilityPack搜索行使用下一行
我需要一点支持。我已经抓到了C#a网站。下面是我需要的一个简短的HTML: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
<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