Example #1
0
        private BaseEntityParser GetParser(string nodeName)
        {
            BaseEntityParser parser = _parsers[nodeName];

            if (parser == null)
            {
                throw new Exception($"Invalid node name {nodeName}");
            }

            return(_parsers[nodeName]);
        }
Example #2
0
        public IEnumerable <BaseEntity> ReadCatalog()
        {
            using (XmlReader xmlReader = XmlReader.Create("Catalog.xml", new XmlReaderSettings
            {
                IgnoreWhitespace = true,
                IgnoreComments = true
            }))
            {
                xmlReader.ReadToFollowing(_catalogName);
                xmlReader.ReadStartElement();

                do
                {
                    while (xmlReader.NodeType == XmlNodeType.Element)
                    {
                        var node = XNode.ReadFrom(xmlReader) as XElement;
                        BaseEntityParser parser = GetParser(node.Name.LocalName);
                        yield return(parser.Parse(node));
                    }
                } while (xmlReader.Read());
            }
        }