1. C# / Говнокод #10319

    +98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    public class XmlParserClass
        {
            private XmlDocument xmlDoc;
            public static List<Attribute> listOfAttributes;
            public static Dictionary<int, AttributeValue> listOfAttributeValues;
            public static Dictionary<int, File> listOfFiles;        
            public static List<Product> listOfProducts;
            public List<FileCategory> listOfFileCategories;
            public List<Distributor> listOfDistributors;
            public static bool cryptedFiles = false;
    
            private string xmlfileLocation; 
            private string XmlfileLocation  
            {
                get 
                { 
                    if (xmlfileLocation == null)
                        xmlfileLocation = System.IO.Path.GetDirectoryName(Program.GetValue("XMLFileLocation", ""));
                    return xmlfileLocation;
                }
            }
    	       
    	public XmlParserClass(XmlDocument xmlDocument)
            {
                xmlDoc = xmlDocument;
                listOfAttributes = new List<Attribute>();
                listOfAttributeValues = new Dictionary<int, AttributeValue>();
                listOfProducts = new List<Product>();
                listOfFileCategories = new List<FileCategory>();
                listOfFiles = new Dictionary<int, File>();
                listOfDistributors = new List<Distributor>();
    
    			.......
    			
                   //Читаем а с XML ....
                    foreach (XmlNode xmlValue in attr.SelectSingleNode("Values").ChildNodes)
                    {
                       ................
                    }
    
                    listOfAttributes.Add(a);
    
    			
    			.........
    			//Читаем fc с XML....
    			listOfFileCategories.Add(fc);
    			
    			.........
    		}
    	}

    Создали экземпляр чтобы прочитать данные с XML. Куда бы нам их положить? Конечно в статические поля!

    Запостил: dreamer, 18 Мая 2012

    Комментарии (5) RSS

    • Как-то совсем плохо парсить уже готовый XmlDocument, че ж он с ним до этого делал?
      Ответить
      • XmlDocument к тому же самый медленный из всех API для работы с xml, существующих в дотнете.
        Ответить
        • он что, на регулярках?
          Ответить
          • Нет. Просто он соответствует спецификации DOM W3C, вынужден хранить документ в таком виде, чтобы обеспечить работу с DOM, предоставляет доступ к узлам соответственно этой модели. А это неэффективно.
            От него даже хотели избавиться, когда выпускали вторую версию дотнет фреймворка. Но веб-разработчикам привычно работать с DOM, поэтому оставили.
            А так раньше рекомендовалось юзать XPathDocument - более шустрый (но только для чтения).
            А ныне есть православно-халяльный XDocument. Ещё более быстрый. Да, это LINQ. Да, можно применять AsParallel :).
            Ответить
            • не знаю почему, но так получилось, что стандарт DOM W3C - это самое неудобное API, что я видел... И похоже, так со многими их стандартами....
              Ответить

    Добавить комментарий