Beispiel HTML:Wie alle Eingabeelemente in einer Form mit HtmlAgilityPack zu erhalten, ohne einen Nullreferenzfehler zu bekommen
<html><body>
<form id="form1">
<input name="foo1" value="bar1" />
<!-- Other elements -->
</form>
<form id="form2">
<input name="foo2" value="bar2" />
<!-- Other elements -->
</form>
</body></html>
Prüfregeln:
HtmlDocument doc = new HtmlDocument();
doc.Load(@"D:\test.html");
foreach (HtmlNode node in doc.GetElementbyId("form2").SelectNodes(".//input"))
{
Console.WriteLine(node.Attributes["value"].Value);
}
Die Aussage doc.GetElementbyId("form2").SelectNodes(".//input")
gibt mir einen NULL-Verweis.
Alles, was ich falsch gemacht habe? Vielen Dank.
Bedeutet dies, dass, außer Sie 'HtmlNode.ElementsFlags.Remove (" form ");' verwenden, es nicht möglich ist, untergeordnete Elemente von 'form' Elementen über HAP zu analysieren? –
@Kevin, ich kenne keine andere Alternative. –
5 Jahre später - immer noch eine Anforderung, immer noch die richtige Antwort. Auch sollte noch im Paket selbst geändert werden ... – getglad