private static IXmlConsumer HandleStartElement(XmlReader reader, IXmlConsumer consumer) { if (reader.IsEmptyElement) { IXmlConsumer tempConsumer = consumer.HandleStartElement(reader); if (tempConsumer == null) return null; tempConsumer.HandleStartElement(reader); tempConsumer.HandleEndElement(reader); return consumer; } return consumer.HandleStartElement(reader); }
private static IXmlConsumer HandleXmlElement(XmlReader reader, IXmlConsumer consumer) { var newConsumer = HandleStartElement(reader, consumer); if (newConsumer != null) { return newConsumer; } // skip over non-understood sub tree XmlReader subReader = reader.ReadSubtree(); while (!subReader.EOF) subReader.Read(); return consumer; }