Exemplo n.º 1
0
		public static void ReadList (XmlReader reader, ICollection<string> endNodes, ReaderCallbackWithData callback)
		{
			if (reader.IsEmptyElement) 
				return;
			ReadCallbackData data = new ReadCallbackData ();
			bool didReadStartNode = endNodes.Contains (reader.LocalName);
			
			while (data.SkipNextRead || reader.Read()) {
				data.SkipNextRead = false;
				switch (reader.NodeType) {
				case XmlNodeType.EndElement:
					if (endNodes.Contains (reader.LocalName)) 
						return;
					IXmlLineInfo xmlInfo = (IXmlLineInfo)reader;
					LoggingService.LogWarning (
						"Encountered end node '{0}' when expecting one of '{1}'. Location ln:{2} col: {3}. Stack Trace:{4}",
						reader.LocalName, ConcatString (endNodes), xmlInfo.LineNumber, xmlInfo.LinePosition, new System.Diagnostics.StackTrace ());
					break;
				case XmlNodeType.Element:
					if (!didReadStartNode && endNodes.Contains (reader.LocalName)) {
						didReadStartNode = true;
						break;
					}
					bool validNode = callback (data);
					if (!validNode) 
						LoggingService.LogWarning ("Unknown node: " + reader.LocalName);
					break;
				}
			}
		}
Exemplo n.º 2
0
		public static void ReadList (XmlReader reader, ICollection<string> endNodes, ReaderCallbackWithData callback)
		{
			if (reader.IsEmptyElement) 
				return;
			ReadCallbackData data = new ReadCallbackData ();
			bool didReadStartNode = false;
			while (reader.Read()) {
			 skip:
				data.SkipNextRead = false;
				switch (reader.NodeType) {
				case XmlNodeType.EndElement:
					if (endNodes.Contains (reader.LocalName)) 
						return;
					Console.WriteLine ("Unknown end node: " + reader.LocalName + " valid end nodes are: " + ConcatString (endNodes));
					break;
				case XmlNodeType.Element:
					if (!didReadStartNode && endNodes.Contains (reader.LocalName)) {
						didReadStartNode = true;
//						break;
					}
					bool validNode = callback (data);
					if (!validNode) 
						Console.WriteLine ("Unknown node: " + reader.LocalName);
					if (data.SkipNextRead) 
						goto skip;
					break;
				}
			}
		}
Exemplo n.º 3
0
        public static void ReadList(XmlReader reader, ICollection <string> endNodes, ReaderCallbackWithData callback)
        {
            if (reader.IsEmptyElement)
            {
                return;
            }
            ReadCallbackData data             = new ReadCallbackData();
            bool             didReadStartNode = false;

            while (reader.Read())
            {
skip:
                data.SkipNextRead = false;
                switch (reader.NodeType)
                {
                case XmlNodeType.EndElement:
                    if (endNodes.Contains(reader.LocalName))
                    {
                        return;
                    }
                    Console.WriteLine("Unknown end node: " + reader.LocalName + " valid end nodes are: " + ConcatString(endNodes));
                    break;

                case XmlNodeType.Element:
                    if (!didReadStartNode && endNodes.Contains(reader.LocalName))
                    {
                        didReadStartNode = true;
//						break;
                    }
                    bool validNode = callback(data);
                    if (!validNode)
                    {
                        Console.WriteLine("Unknown node: " + reader.LocalName);
                    }
                    if (data.SkipNextRead)
                    {
                        goto skip;
                    }
                    break;
                }
            }
        }
Exemplo n.º 4
0
        public static void ReadList(XmlReader reader, ICollection <string> endNodes, ReaderCallbackWithData callback)
        {
            if (reader.IsEmptyElement)
            {
                return;
            }
            ReadCallbackData data             = new ReadCallbackData();
            bool             didReadStartNode = endNodes.Contains(reader.LocalName);

            while (data.SkipNextRead || reader.Read())
            {
                data.SkipNextRead = false;
                switch (reader.NodeType)
                {
                case XmlNodeType.EndElement:
                    if (endNodes.Contains(reader.LocalName))
                    {
                        return;
                    }
                    IXmlLineInfo xmlInfo = (IXmlLineInfo)reader;
                    LoggingService.LogWarning(
                        "Encountered end node '{0}' when expecting one of '{1}'. Location ln:{2} col: {3}. Stack Trace:{4}",
                        reader.LocalName, ConcatString(endNodes), xmlInfo.LineNumber, xmlInfo.LinePosition, new System.Diagnostics.StackTrace());
                    break;

                case XmlNodeType.Element:
                    if (!didReadStartNode && endNodes.Contains(reader.LocalName))
                    {
                        didReadStartNode = true;
                        break;
                    }
                    bool validNode = callback(data);
                    if (!validNode)
                    {
                        LoggingService.LogWarning("Unknown node: " + reader.LocalName);
                    }
                    break;
                }
            }
        }