HTML敏捷包可以';找不到带有尾随空格的类

本文关键字:空格 找不到 包可 HTML | 更新日期: 2023-09-27 18:23:57

我使用以下代码解析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敏捷包能自己处理这种情况吗?

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>

"标题"!="标题"

您可以使用Xpath查询中的"包含"功能来解决您的问题

尝试以下操作:

HtmlAgilityPack.HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h3[contains(@class, 'the-title')]");