gpt4 book ai didi

c# - HTML Agility Pack 空引用

转载 作者:可可西里 更新时间:2023-11-01 08:51:10 26 4
gpt4 key购买 nike

我在使用 HTML Agility Pack 时遇到了一些问题。

当我在不包含特定节点的 HTML 上使用此方法时,出现空引用异常。它起初有效,但随后停止工作。这只是一个片段,还有大约 10 个用于选择不同节点的 foreach 循环。

我做错了什么?

public string Export(string html)
{
var doc = new HtmlDocument();
doc.LoadHtml(html);
// exception gets thrown on below line
foreach (var repeater in doc.DocumentNode.SelectNodes("//table[@class='mceRepeater']"))
{
if (repeater != null)
{
repeater.Name = "editor:repeater";
repeater.Attributes.RemoveAll();
}
}

var sw = new StringWriter();
doc.Save(sw);
sw.Flush();

return sw.ToString();
}

最佳答案

AFAIK,如果没有找到节点,DocumentNode.SelectNodes 可以返回 null

这是默认行为,请参阅 codeplex 上的讨论线程:Why DocumentNode.SelectNodes returns null

因此解决方法是重写 foreach block :

var repeaters = doc.DocumentNode.SelectNodes("//table[@class='mceRepeater']");
if (repeaters != null)
{
foreach (var repeater in repeaters)
{
if (repeater != null)
{
repeater.Name = "editor:repeater";
repeater.Attributes.RemoveAll();
}
}
}

关于c# - HTML Agility Pack 空引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com