当我试图从我的 xpath 中删除一个子节点时,我遇到了一个奇怪的错误:-
System.ArgumentOutOfRangeException 未处理 Message=Node "" is not found in the collection
我知道 HAP childremoving 存在问题,但如果他们用新版本修复它,我知道。我的问题是我的代码错误还是 HAP?无论哪种方式,有没有办法解决这个问题并删除那些子节点?
这是我的代码:-
List<MediNetScheme> medinetScheme = new List<MediNetScheme>();
HtmlDocument htdoc = new HtmlDocument();
htdoc.LoadHtml(results);
foreach (HtmlNode table in htdoc.DocumentNode.SelectNodes("//table[@class='list-medium']/tbody[1]/tr[@class]"))
{
string itemValue = string.Empty;
HtmlNode ansvarig =table.SelectSingleNode("//table[@class='list-medium']/tbody[1]/tr[@class]/td[4]");
table.RemoveChild(ansvarig, true);
itemValue = table.InnerText;
medinetScheme.Add(new MediNetScheme(){Datum=itemValue.Remove(15),Sections=itemValue.Remove(0,15)});
}
MediNetScheme.ItemsSource = medinetScheme;
编辑:-
我的 HTML 文档有一个表格,其中包含几行具有此 xpath 的表格:-“//table[@class='list-medium']/tbody 1 /tr[@class]”。此表中的每一行有 5 列 td 1 ...td[5]。在我的第一个 foreach 循环中,我使用 selectnodes 来获取表中每一行的 HTMLcode。我想要做的是只从每行的前 3 个 td 中获取内部文本,这意味着我需要从每行中删除 td[4] 和 td[5]。当我使用您编辑的代码时,我能够摆脱第一行中的 td[4] 和 td[5] 而不是第一行之后的其他行。
这是我的 HTML 的图片:-