c# - HTML Agility Pack 找不到带有尾随空格的类

标签 c# html parsing html-agility-pack

我使用以下代码来解析 HTML 文档:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(pageStr);
HtmlAgilityPack.HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h3[@class='the-title']");

但找不到以下字符串:

<h3 class="the-title ">

并且仅当从类中删除尾随空格时才有效。

HTML 敏捷包本身可以处理这种情况吗?

最佳答案

您可以尝试使用 XPath normalize-space() 在进行比较之前删除不必要的空格:

//h3[normalize-space(@class)='the-title']

工作演示示例:

var html = @"<div>
    <h3 class='the-title '/>
</div>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
var node = doc.DocumentNode.SelectSingleNode("//h3[normalize-space(@class)='the-title']");
Console.WriteLine(node.OuterHtml);

Dotnetfiddle Demo

输出:

<h3 class='the-title '></h3>

关于c# - HTML Agility Pack 找不到带有尾随空格的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881326/

相关文章:

javascript - 如何在取消选中 AngularJS 中的复选框时刷新下拉菜单

javascript - 在 Controller 中获取每个指定类型的名称

html5 facebook 像按钮不在 IE 中呈现

java - 如何使用 JAXB 解析 webflow

C#/.NET 词法分析器生成器

PHP : parsing questions then getting the keywords

c# - 无法使用单例 yyy 的作用域服务 xxx

c# - 查明 IEnumerable<> 是否具有唯一值的最佳方法

c# - 导出到 Excel .xlsx 文件

c# - 如何清除 System.Runtime.Caching.MemoryCache