2015-09-11 1 views
-1

Salut j'essaie d'imprimer la collection div.pendant l'impression de la collection div je reçois la première valeur seulement.Il est mon programme.collection div imprime une seule valeur

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);    
     } 
    } 
} 

la sortie réelle est

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 

mais mes programmes enregistrent une valeur aide sera lecteurs assument apprécié.

+0

Si le code est formaté pour que nous puissions le lire facilement, vous pouvez obtenir des réponses. –

Répondre

0

Vous n'appliquez pas à Total_Units_details à la place, vous affectez une nouvelle valeur à chaque itération de la boucle.

Vous pouvez utiliser:

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(); 

    } 
} 

(concaténation String): "première ligne" + Environment.NewLine + "deuxième ligne";

Également essayer de chercher la classe StringBuilder c'est mieux que d'utiliser la méthode ci-dessus. Vous pouvez ajouter la nouvelle chaîne à votre StringBuilder à chaque itération de la boucle et après ajouter 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

Si vous voulez afficher chaque ligne à la console, vous devez déplacer le Console.WriteLine à l'intérieur de la boucle 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); 
    } 
}