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']/ tbody 1 /tr[@class]". このテーブルの各行には、5 つの列 td 1 ...td[5] があります。私の最初の foreach ループでは、テーブル内の各行の HTML コードを取得するために selectnodes を使用しています。私がしたいのは、各行の最初の 3 つの td から内部テキストのみを取得することです。つまり、各行から td[4] と td[5] を取り除く必要があります。編集したコードを使用すると、最初の行の td[4] と td[5] を取り除くことができましたが、最初の行に続く他の行は取り除くことができませんでした。
ここに私のHTMLの写真があります:-