Как получить ввод формы с помощью HtmlAgilityPack без получения нулевой ошибки ссылки?

c# html html-agility-pack

Вопрос

Как я могу извлечь второй набор входных узлов после <br> из формы HTML ниже?

Когда я пытаюсь сделать следующее, я не получаю входных узлов.

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

HTML

<form>
  <div>
    <input type="submit" value="subv1" name="subn1">
  </div>
  <script></script>
  <table></table>
  <table></table>
  <br>
  <input type="hidden" value="v1" name="n1">
  <input type="hidden" value="v2" name="n2">
  <input type="submit" value="subv2" name="subn2">
</form>  

Принятый ответ

Вызовите HtmlNode.ElementsFlags.Remove("form") перед загрузкой документа. Следующее работает отлично:

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();
}


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow