-1

第一个 ListAStore迭代并为每次迭代创建一个新列表。第二个 ListAPages迭代,但不会在每次迭代时创建一个新列表。对于每个列表创建和 List.Add,我都有相同的位置。这里有什么问题?

public void Promos()
{
    //get store info and id
    var storeinfo = new HtmlWeb();
    var storeshtm = storeinfo.Load(@"Stores.htm");
    var nodes = storeshtm.DocumentNode.SelectNodes("div");
    List<Store> AStore = new List<Store>();
    nodes = nodes[0].ChildNodes;
    int a = 0;
    foreach (var node in nodes)
    {
        if (node.Name != "#text")
        {
            AStore.Add(new Store(
                node.ChildNodes[1].ChildNodes[1].Attributes[7].Value,//storewebid
                "Astore",//storename
                node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText,//storeaddress
                node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[5].InnerText,//storecity
                node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[5].InnerText,//storestate
                node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[5].InnerText,//storezip
                node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[7].InnerText,//storephone
                ""//storehours
            ));
        }
    }
    for (int i = 0; i <= a; i++)
    {
        var circualr = new HtmlWeb();
        var storehtm = circualr.Load(@"http://storewebsite/" + AStore[i].StoreWebID);
        var cnodes = storehtm.DocumentNode.SelectNodes("//*[@id="+'"'+"Wrapper"+'"'+"]");
        List<Pages> APages = new List<Pages>();
        foreach (var cnode in cnodes)
            if(cnode.ChildNodes[3].ChildNodes[3].ChildNodes[5].ChildNodes[3].ChildNodes[1].Name == "a")
                APages.Add(new Pages(cnode.ChildNodes[3].ChildNodes[3].ChildNodes[5].ChildNodes[3].ChildNodes[1].Attributes[2].Value));//get inner page links
    }
4

1 回答 1

1

我对每个列表创建都有相同的位置

没有相同的创建位置,它AStore是在 for 循环之外创建的,而APages一个是。

于 2013-07-24T15:11:21.267 回答