C# Html敏捷包-如何选择正确的跨度类

C# Html敏捷包-如何选择正确的跨度类,c#,html-agility-pack,C#,Html Agility Pack,我想在亚马逊网页上找到最低价。让我们以此url为例: http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=9963BB#/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=E999-4701&rh=i%3Aaps%2Ck%3AE999-4701 我想找到最低的价格。。。“新发件人”右侧的编号 以下是我尝试过的:

我想在亚马逊网页上找到最低价。让我们以此url为例:

http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=9963BB#/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=E999-4701&rh=i%3Aaps%2Ck%3AE999-4701
我想找到最低的价格。。。“新发件人”右侧的编号

以下是我尝试过的:

        using (TextWriter tw = new StreamWriter(@"D:\AmazonUrls.txt"))
        {
            foreach (string item in list)
            {
                var webGet = new HtmlWeb();
                var document = webGet.Load(item);
                var lowestPrice = document.DocumentNode.SelectSingleNode("//span[@id='subPrice']");
                if (lowestPrice != null)
                {
                    Console.WriteLine(lowestPrice);                
                }

            }           
        }

我没有得到任何结果。我哪里出错了?

您要求的节点具有
id
的子价格,但实际上是
类具有子价格:

<span class="subPrice">
        <a href="http://www.amazon.com/gp/offer-listing/B001BA0W06/ref=sr_1_6_olp?ie=UTF8&qid=1334090832&sr=8-6&condition=new">5 new</a>
    from <span class="price">$245.90</span></span>

你应该得到你想要的。但是,您给出的示例页面有多个节点与该模式匹配,因此您需要选择多个节点,然后在它们之间循环,以确定哪个节点具有最低的隐私。

I在您的建议之后添加了.InnerText,它返回了“2 new from$5.00”。我可以从那里处理。谢谢:)但程序在返回一个结果后崩溃。也许这不是解决该问题的正确线程,但是有人知道为什么foreach会在一次迭代后死亡吗?它会崩溃吗?system.NullReferenceException。对象引用未设置为对象的实例。您可能必须显示填充列表的代码才能获得相关帮助。
var lowestPrice = document.DocumentNode.SelectSingleNode("//span[@class='subPrice']");