質問: 私は、与えられた行/文字位置(例えば、行5、文字12)に対応するHtmlNodeを見つけようとしています。私はヘルプドキュメントの周りを見てきましたが、私はそれが利用可能であることもあまりよく分かりません。 これはHtml Agility Packで可能ですか? 編集: サンプルHTMLファイル: ``` An Ordered List: Coffee Tea Milk ``` 私はポジション7行目、文字5 - >コーヒーLIと12行目を取得しようとしています、バックノードを取得します。
回答: 5行目の12行目のHTMLについて話しているなら、次のようなことができます: ``` private void button1_Click_1(object sender, EventArgs e) { HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb(); HtmlAgilityPack.HtmlDocument doc; doc = web.Load("http://slashdot.org"); var node = CheckLine(doc.DocumentNode); if (node != null) MessageBox.Show(node.OuterHtml); } private HtmlAgilityPack.HtmlNode CheckLine(HtmlAgilityPack.HtmlNode node) { if (node.Line == 5 && node.LinePosition < 12 && ((node.LinePosition + node.OuterHtml.Length) > 12)) return node; foreach (var n in node.ChildNodes) { var val = CheckLine(n); if (val != null) return val; } return null; } ```