2015-09-11 56 views
-1

嗨,我想打印div集合。同时打印div集合,我只获得第一个值。这里是我的程序。div集合打印只有一个值

using System; 
using System.Diagnostics; 
using System.Threading; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using WatiN.Core; 
using System.Text.RegularExpressions; 
using System.Collections.Generic; 
using System.IO; 
using FileHelpers; 
using RealEstate.Core; 
using ConsoleApplication3; 
using System.Collections.Specialized; 

namespace ConsoleApplication4 
{ 
    class Program 
    { 
     [STAThread] 
     public static void Main(string[] args) 
     { 
      Browser bi; 
      bi = new IE(@"https://www.proptiger.com/gurgaon/sector-37c/ild-grand-501804"); 
      string BHK_Collection = string.Empty; 
      string Total_Units_details = string.Empty; 
      DivCollection collection = bi.Divs.Filter(Find.ByClass("projImgContBoxInfo ng-scope")); 

      foreach (var Span in collection) 
      { 
       if (Span.OuterText.Contains("Basic information")) 
       { 
        BHK_Collection = Span.OuterText.Replace(" Request a site visit", "").Replace("Basic information", "").Replace("This configuration is available from builder", "").Replace("2D 3D Video Tour", "").Replace("\r\n", "\n").Replace("Bedroom(s)", "Bedroom(s);").Replace("Bath(s)", "Bath(s);").Replace("Balconie(s)", "Balconie(s);").Replace("Price On Request", "Price On Request;").Replace("Servant Room", "Servant Room;").Replace("sq ft", "sq ft;").Replace("Cr*", "Cr;").Replace("Request a floor plan", "").Replace("(", "").Replace(")", "").Replace("− Builder Price", "").Replace("Lacs*", "Lacs;").TrimStart(); 
        Total_Units_details = string.Join(" ", BHK_Collection.Split('\r', '\n')).Replace(" ", "").Replace(" ", " ").Replace(System.Environment.NewLine, " ").TrimStart(); 
       } 
      } 

      Console.WriteLine(Total_Units_details);    
     } 
    } 
} 

实际产量

2BHK+2T - 1,280 sq ft ;66.6 Lacs;5,200/sq ft;2 Bedroom(s);2 Bath(s);4 Balconie(s);EMI - 54,995 
2BHK+2T - 1,310 sq ft ; 68.1 Lacs;5,200/sq ft;2 Bedroom(s);2 Bath(s);3 Balconie(s);EMI - 56,233 
3BHK+3T – 1,790 sq ft; 88.6 Lacs;4,950/sq ft; 3 Bedrooms;3 Baths; 3 Balconies;EMI - 74,400 
3BHK+3T – 1,820 sq ft; 90.1 Lacs;4,950/sq ft; 3 Bedrooms;3 Baths;;EMI - 74,400 
3BHK+4T Study – 2,289 sq ft; 1.66 Cr;7,250/sq ft; 3 Bedrooms;4 Baths; 5 Balconies;EMI - 1,40,377 

,但我的程序打印一个值only.any帮助将不胜感激。

+0

如果代码被格式化以便我们可以轻松阅读,您可能会得到一些答案。 –

回答

0

您不会追加到Total_Units_details,而是在循环的每次迭代中分配一个新值。

可以使用:

foreach (var Span in collection) 
{ 
    if (Span.OuterText.Contains("Basic information")) 
    { 
     BHK_Collection = Span.OuterText.Replace(" Request a site visit", "").Replace("Basic information", "").Replace("This configuration is available from builder", "").Replace("2D 3D Video Tour", "").Replace("\r\n", "\n").Replace("Bedroom(s)", "Bedroom(s);").Replace("Bath(s)", "Bath(s);").Replace("Balconie(s)", "Balconie(s);").Replace("Price On Request", "Price On Request;").Replace("Servant Room", "Servant Room;").Replace("sq ft", "sq ft;").Replace("Cr*", "Cr;").Replace("Request a floor plan", "").Replace("(", "").Replace(")", "").Replace("− Builder Price", "").Replace("Lacs*", "Lacs;").TrimStart(); 
     //CHANGE HERE : 
     Total_Units_details = Total_Units_details + Environment.NewLine + string.Join(" ", BHK_Collection.Split('\r', '\n')).Replace(" ", "").Replace(" ", " ").Replace(System.Environment.NewLine, " ").TrimStart(); 

    } 
} 

(字符串连接): “第一行” + Environment.NewLine + “二线”;

也尝试查找类StringBuilder它比使用上述方法更好。您可以追加新的字符串到您的StringBuilder在循环的每次迭代,之后追加Environment.NewLine

class Program 
{ 
    [STAThread] 
    public static void Main(string[] args) 
    { 
     Browser bi; 
     bi = new IE(@"https://www.proptiger.com/gurgaon/sector-37c/ild-grand-501804"); 

     string BHK_Collection = string.Empty; 

     string Total_Units_details = string.Empty; 

     DivCollection collection = bi.Divs.Filter(Find.ByClass("projImgContBoxInfo ng-scope")); 

     foreach (var Span in collection) 
     { 
      if (Span.OuterText.Contains("Basic information")) 
      { 
       BHK_Collection = Span.OuterText.Replace(" Request a site visit", "").Replace("Basic information", "").Replace("This configuration is available from builder", "").Replace("2D 3D Video Tour", "").Replace("\r\n", "\n").Replace("Bedroom(s)", "Bedroom(s);").Replace("Bath(s)", "Bath(s);").Replace("Balconie(s)", "Balconie(s);").Replace("Price On Request", "Price On Request;").Replace("Servant Room", "Servant Room;").Replace("sq ft", "sq ft;").Replace("Cr*", "Cr;").Replace("Request a floor plan", "").Replace("(", "").Replace(")", "").Replace("− Builder Price", "").Replace("Lacs*", "Lacs;").TrimStart(); 
       Total_Units_details = string.Join(" ", BHK_Collection.Split('\r', '\n')).Replace(" ", "").Replace(" ", " ").Replace(System.Environment.NewLine, " ").TrimStart(); 
      } 
     } 

     Console.WriteLine(Total_Units_details);    
    } 
} 
0

如果你想输出的每一行控制台,那么你需要的Console.WriteLine移到foreach环内

foreach (var Span in collection) 
{ 
    if (Span.OuterText.Contains("Basic information")) 
    { 
     BHK_Collection = Span.OuterText.Replace(" Request a site visit", "").Replace("Basic information", "").Replace("This configuration is available from builder", "").Replace("2D 3D Video Tour", "").Replace("\r\n", "\n").Replace("Bedroom(s)", "Bedroom(s);").Replace("Bath(s)", "Bath(s);").Replace("Balconie(s)", "Balconie(s);").Replace("Price On Request", "Price On Request;").Replace("Servant Room", "Servant Room;").Replace("sq ft", "sq ft;").Replace("Cr*", "Cr;").Replace("Request a floor plan", "").Replace("(", "").Replace(")", "").Replace("− Builder Price", "").Replace("Lacs*", "Lacs;").TrimStart(); 
     Total_Units_details = string.Join(" ", BHK_Collection.Split('\r', '\n')).Replace(" ", "").Replace(" ", " ").Replace(System.Environment.NewLine, " ").TrimStart(); 
     Console.WriteLine(Total_Units_details); 
    } 
}