Example #1
0
        public List <Ecologist> ReadAllEcologists(string file)
        {
            List <Ecologist> res = new List <Ecologist>();
            XmlDocument      doc = new XmlDocument();

            try
            {
                doc.Load(file);
            }
            catch {
                Exc();
            }

            XmlElement root = doc.DocumentElement;

            if (root.LocalName != "company")
            {
                Exc();
            }

            foreach (XmlNode ecologist in root.ChildNodes)
            {
                if (ecologist.LocalName != "ecologist" ||
                    ecologist.ChildNodes.Count < 1)
                {
                    Exc();
                }
                XmlNode name = ecologist.ChildNodes[0];
                if (name.LocalName != "name")
                {
                    Exc();
                }
                Ecologist eco = new Ecologist();
                eco.Name = name.InnerText;
                for (int i = 1; i < ecologist.ChildNodes.Count; i++)
                {
                    //Проверка пробы громоздкая, поэтому вынесена в отдельную фнкцию
                    Probe newProbe = ParseProbe(ecologist.ChildNodes[i]);

                    if (newProbe == null)
                    {
                        Exc();
                    }
                    eco.Probes.Add(newProbe);
                }
                res.Add(eco);
            }

            return(res);
        }
Example #2
0
        public List <Ecologist> ReadAllEcologists(string file)
        {
            List <Ecologist> res = new List <Ecologist>();
            //существует еще вариант последовательного парсинга файла,
            //на случай очень больших xml , но его дольше кодить
            XmlDocument doc = new XmlDocument();

            try
            {
                doc.Load(file);
            }
            catch {
                Exc();
            }

            XmlElement root = doc.DocumentElement;

            if (root.LocalName != "company")
            {
                Exc();
            }

            foreach (XmlNode ecologist in root.ChildNodes)
            {
                if (ecologist.LocalName != "ecologist" ||
                    ecologist.ChildNodes.Count < 1)
                {
                    Exc();
                }
                XmlNode name = ecologist.ChildNodes[0];
                if (name.LocalName != "name")
                {
                    Exc();
                }
                Ecologist eco = new Ecologist();
                eco.Name = name.InnerText;
                for (int i = 1; i < ecologist.ChildNodes.Count; i++)
                {
                    Probe newProbe = ParseProbe(ecologist.ChildNodes[i]);
                    if (newProbe == null)
                    {
                        Exc();
                    }
                    eco.Probes.Add(newProbe);
                }
                res.Add(eco);
            }

            return(res);
        }