Когда я пытаюсь удалить childnode из моей XPath я получаю странные ошибки: -Удаление ChildNodes с использованием ГАП
System.ArgumentOutOfRangeException было необработанное Message = Node «» не был найден в коллекции
Я знаю, что проблема с HAP childremoving, но idk, если они исправили ее с новой версией или нет. Мой вопрос в том, что мой код неправильный или это 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;
Edit: -
Мой HTML документ имеет таблицу с несколькими строками, которые имеют этот XPath: - «// таблица [@ класс =" list- medium ']/tbody 1/tr [@class] ". Каждая строка в этой таблице имеет 5 столбцов td 1 ... td [5]. В моем первом цикле foreach я использую selectnodes для получения HTML-кода каждой строки в таблице. То, что я хочу сделать, это получить только внутренний текст из первых 3 td в каждой строке, что означает, что мне нужно избавиться от td [4] и td [5] из каждой строки. Когда я использовал отредактированный код, я смог избавиться от td [4] и td [5] в первой строке, но не с другими строками, которые следует за первой строкой.
Вот рис моего HTML: -
Спасибо за ваш флаг :) Я рад, что вы столкнулись с хорошим решением – vfportero
Поздравляем с исправлением! Когда вы в состоянии, пожалуйста, отметьте свой ответ как «принятый», чтобы другие могли узнать ваше решение. Приветствия ~ –