[英]C# HTMLNode get correctly innerText of div
我正在尝试正确提取我从网站获取的 div 列表的 innerText。
这是我想出的,但仍然有点错误,因为它错过了空格和 - 符号。
var first = mainmenuTitles[x].Descendants("div").FirstOrDefault(o => o.GetAttributeValue("class", "") == "left").Elements("a").ToList();
string final = "";
foreach (var countfirst in first)
{
final += countfirst.InnerText;
}
Console.WriteLine("Tittle: " + final);
这是 html 代码的样子
<div class="row row-tall mt4">
<div class="clear">
<div class="left">
<a href="/soccer/italy/">
<strong>Italy</strong>
</a>
-
<a href="/soccer/italy/lega-pro-group-b/">Serie C:: group B</a>
</div> <div class="right fs11"> March 31 </div> </div> </div>
我想得到的文字应该是这样的 -> 意大利 - 意甲:B 组
我不是 html 大师,所以如果它太简单而我错过了,请原谅我。
您可以编写查询以使用 xpath //div/a
查找所有节点,然后连接内部文本以获取您要查找的文本。 确保修剪文本以去除多余的空格并返回。
Console.WriteLine(string.Join(" - ", doc.DocumentNode.SelectNodes("//div/a").Select(x => x.InnerText.Trim())));
输出:
Italy - Serie C:: group B
旁注……您也可以使用不同的查询来确保通过使用类名来获得正确的 div。 例如.SelectNodes("//div[@class='row row-tall mt4']/a");
. 这将为您提供该 div 下的所有<a>
标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.