Ich versuche den entsprechenden HtmlNode für eine gegebene Zeile / Zeichenposition zu finden (zB Zeile 5, Zeichen 12). Ich habe mich in der Hilfe-Dokumentation umgeschaut, bin aber nicht sicher, ob sie verfügbar ist.
Ist dies im Html Agility Pack möglich?
BEARBEITEN:
Beispiel-HTML-Datei:
<!DOCTYPE html>
<html>
<body>
<h4>An Ordered List:</h4>
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ol>
</body>
</html>
Ich versuche, Position 7, Zeichen 5 -> Kaffee LI und 12. Zeile, Knoten zurück zu bekommen.
Wenn Sie über HTML in Zeile 5, Position 12, sprechen, könnten Sie Folgendes tun:
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;
}