繁体   English   中英

C# HTMLNode 正确获取 div 的innerText

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM