【发布时间】:2012-05-10 00:16:05
【问题描述】:
当我试图从我的 xpath 中删除一个子节点时,我遇到了一个奇怪的错误:-
System.ArgumentOutOfRangeException 未处理 在集合中找不到 Message=Node ""
我知道 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']/tbody1/tr[@class]”。此表中的每一行有 5 列 td1...td[5]。在我的第一个 foreach 循环中,我使用 selectnodes 来获取表中每一行的 HTMLcode。我想要做的是只从每行的前 3 个 td 中获取内部文本,这意味着我需要从每行中删除 td[4] 和 td[5]。当我使用您编辑的代码时,我能够摆脱第一行中的 td[4] 和 td[5] 而不是第一行之后的其他行。
这是我的 HTML 的图片:-
【问题讨论】:
标签: windows-phone-7 html-agility-pack