Advertisement
thebys

Analýza obsahu souborů ve složce pomocí nastavitelného XPATH

May 31st, 2011
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.25 KB | None | 0 0
  1.         public static void AnalyzeFolder(string dirpath, string xpath, form1 form, RichTextBox richTextBox)
  2.         {
  3.             //vygenerování polí pro výsledek a počet výsledků
  4.             ArrayList vysledky = new ArrayList();
  5.             ArrayList pocty = new ArrayList();
  6.             pocty.Add(0);
  7.             vysledky.Add("Dokument neobsahuje nic podle zadaných kritérií (XPATH)");
  8.             DirectoryInfo dir = new DirectoryInfo(dirpath);
  9.             FileInfo[] fi = dir.GetFiles("*.html");
  10.             foreach (FileInfo file in fi)
  11.             {
  12.                 //složka načtena, budeme zjišťovat co je obsah podle nadpisu h2
  13.                 HtmlAgilityPack.HtmlDocument dokument = new HtmlAgilityPack.HtmlDocument();
  14.                 dokument.Load(file.FullName, System.Text.Encoding.GetEncoding(28592)); //načte dokument se správným kódováním (volby.cz compatible)
  15.                 if (dokument.DocumentNode != null)
  16.                     {
  17.                     HtmlNode node = dokument.DocumentNode.SelectSingleNode(xpath);
  18.                     string vysledek = node.InnerHtml.ToString();
  19.                     int i=0;
  20.                     bool nalezeno = false;
  21.                     foreach(string zaznam in vysledky)
  22.                     {
  23.                         if (zaznam.Contains(vysledek)) { nalezeno = true; break; } //prochází záznamy dokud nenajde shodu - pokud ji najde změní proměnnou nalezeno a přeruší cyklus
  24.                         else
  25.                         {
  26.                             i++;
  27.                         }
  28.                     }
  29.                     if (!nalezeno)
  30.                     {
  31.                        vysledky.Add(vysledek); //přidá nový výsledek do pole
  32.                        pocty.Add(1);
  33.                     }
  34.                     else { pocty[i] = 1 + Convert.ToInt32(pocty[i].ToString()); i++;} //inkrementuje počet nalezených výsledků
  35.                 }
  36.                 else
  37.                 {
  38.                     pocty[0] = 1 + Convert.ToInt32(pocty[0].ToString());
  39.                 }
  40.             }
  41.             for (int z = 0; z <  vysledky.Count; z++)
  42.             {
  43.                 richTextBox.AppendText(vysledky[z] + " -nalezeno: " + pocty[z] + "*");
  44.             }
  45.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement