Come ottenere l'input del modulo con HtmlAgilityPack senza ottenere un errore di riferimento null?

c# html html-agility-pack

Domanda

Come posso estrarre la seconda serie di nodi di input dopo <br> dal form HTML sottostante?

Quando provo quanto segue, non ottengo nodi di input.

HtmlNode.ElementsFlags.Remove("form");
HtmlNode formNode = doc.DocumentNode.SelectNodes("//form")[0];
foreach (HtmlNode innode in formNode.Elements("input"))
{
 ...
}

HTML

HtmlNode.ElementsFlags.Remove("form");
HtmlNode formNode = doc.DocumentNode.SelectNodes("//form")[0];
foreach (HtmlNode innode in formNode.Elements("input"))
{
 ...
}

Risposta accettata

Chiama HtmlNode.ElementsFlags.Remove("form") prima di caricare il documento. Quanto segue funziona bene:

public static void Main()
{
    HtmlNode.ElementsFlags.Remove("form");

    var doc = new HtmlDocument();
    doc.Load("HtmlPage1.html");

    HtmlNode formNode = doc.DocumentNode.SelectNodes("//form")[0];
    foreach (HtmlNode innode in formNode.Elements("input"))
    {
        Console.WriteLine(innode.OuterHtml);
    }

    Console.WriteLine("Press Enter to exit...");
    Console.ReadLine();
}



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché