如何从HtmlDocument对象中过滤隐藏的字段?

时间:2014-05-08 14:57:12

标签: c# asp.net

我使用HtmlDocument加载了HtmlWeb。我知道我可以使用SelectNodes()方法获取所有隐藏的输入字段。但我不想得到所有隐藏的输入,如“__VIEWSTATE”或“__EVENTTARGET”。我该如何过滤它们?

代码:

    HtmlWeb web = new HtmlWeb();
    HtmlDocument doc = web.Load(url);

    HtmlNodeCollection hiddenFieldNodes = doc.DocumentNode.SelectNodes("//input[@type='hidden']");

编辑: 我可以应用任何XPath来过滤隐藏的输入字段吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下xpath忽略任何Asp.NET特殊隐藏字段。它们的所有特殊字段的名称都以两个下划线开头:

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);

HtmlNodeCollection visibleFieldNodes = doc.DocumentNode.SelectNodes("//input[not(starts-with(@name, '__'))]");