C# 如何使用HtmlAlityPack包装特定的标记内容?

C# 如何使用HtmlAlityPack包装特定的标记内容?,c#,html-agility-pack,C#,Html Agility Pack,我正在使用HtmlAgilityPack从链接(站点)中删除数据。一个站点中有许多p标记、header和span标记。我需要从特定的span标记中删除数据 var webGet = new HtmlWeb(); var document = webGet.Load(URL); foreach (HtmlNode node in document.DocumentNode.SelectNodes("\\span")) { string strData = node.InnerText.

我正在使用HtmlAgilityPack从链接(站点)中删除数据。一个站点中有许多
p
标记、
header
span
标记。我需要从特定的
span
标记中删除数据

var webGet = new HtmlWeb();
var document = webGet.Load(URL);
foreach (HtmlNode node in document.DocumentNode.SelectNodes("\\span"))
{
      string strData = node.InnerText.Trim();
}
我曾尝试在父标记上使用关键字,但这对所有类型的URL都不起作用

请帮我修一下。

有什么错误

但您可以从解决此问题开始:

foreach (HtmlNode node in document.DocumentNode.SelectNodes("\\span"))
应该是:

foreach (HtmlNode node in document.DocumentNode.SelectNodes("//span"))
根据评论更新:

例如,如果要从根获取第三个span标记:

 doc.DocumentNode.SelectSingleNode("//span[3]")
如果要获取包含文本“pqr”的节点:


对于后者,您可以使用SelectNodes来获取文本中包含“pqr”的所有span标记。

很抱歉,这是我的错误。我可以得到满足。但我需要准确的数据。例如,源中有太多的范围标记,如abc、def、pqr、xyz。我希望结果为pqr。是否有任何选项可以通过特定标记的计数或索引来获取它?仍然不确定您想要什么,@M-O,但我将根据您所说的内容更新我的答案Inner text是动态的。我会尝试你分享的第一个答案@泰利斯,谢谢你。
doc.DocumentNode.SelectSingleNode("//span[contains(text(),'pqr')]");