如何在HTML Agility Pack中获取选择

时间:2012-07-10 04:32:26

标签: html-agility-pack

我正在尝试获取特定网页的select元素,但我无法做到这一点。

到目前为止,这是我的代码。 我正在尝试在网页中获取select元素,其中包含名称“postalDistrictList”,并且我的代码都不起作用。

我也尝试过htmlweb.DocumentNode.SelectNodes(“// select”),但这会返回null。

有谁知道我该怎么做?

        static void Main(string[] args)
        {
            HtmlNode.ElementsFlags.Remove("option");
            HtmlWeb htmlweb = new HtmlWeb();
            HtmlDocument html = htmlweb.Load("https://www.ura.gov.sg/realEstateWeb/realEstate/pageflow/transaction/submitSearch.do");


//            HtmlNode bodyNode = html.DocumentNode.SelectNodes("//select");
            HtmlNode bodyNode = html.DocumentNode.SelectSingleNode("/html/body");
            HtmlNode selectNode = html.GetElementbyId("postalDistrictList");
            HtmlNodeCollection selectNodes = html.DocumentNode.SelectNodes("//select[@name='postalDistrictList']");
//          HtmlNode selectNode = html.DocumentNode.SelectSingleNode("//select[@name='postalDistrictList']");
             HtmlNode node = selectNode;
//            foreach (HtmlNode node in selectNodes)
            {
                Console.Out.Write(node.Attributes["options"].Value);
                Console.Out.WriteLine();
            }
        }

1 个答案:

答案 0 :(得分:0)

尝试使用XPath //./select[@name='postalDistrictList'],即

HtmlNodeCollection selectNodes = html.DocumentNode.SelectNodes("//./select[@name='postalDistrictList']");

应该可以帮助您获得您正在寻找的精选元素的集合。