internal void ReadPreservationInfo(string elementStartTag) { XmlTextReader xmlTextReader = new XmlTextReader((TextReader) new StringReader(elementStartTag)); WhitespaceTrackingTextReader trackingTextReader = new WhitespaceTrackingTextReader((TextReader) new StringReader(elementStartTag)); xmlTextReader.Namespaces = false; xmlTextReader.Read(); for (bool flag = xmlTextReader.MoveToFirstAttribute(); flag; flag = xmlTextReader.MoveToNextAttribute()) { this.orderedAttributes.Add(xmlTextReader.Name); if (trackingTextReader.ReadToPosition(xmlTextReader.LineNumber, xmlTextReader.LinePosition)) { this.leadingSpaces.Add(xmlTextReader.Name, trackingTextReader.PrecedingWhitespace); } } int length = elementStartTag.Length; if (elementStartTag.EndsWith("/>", StringComparison.Ordinal)) { --length; } if (!trackingTextReader.ReadToPosition(length)) { return; } this.leadingSpaces.Add(string.Empty, trackingTextReader.PrecedingWhitespace); }
internal void ReadPreservationInfo(string elementStartTag) { XmlTextReader xmlTextReader = new XmlTextReader((TextReader)new StringReader(elementStartTag)); WhitespaceTrackingTextReader trackingTextReader = new WhitespaceTrackingTextReader((TextReader)new StringReader(elementStartTag)); xmlTextReader.Namespaces = false; xmlTextReader.Read(); for (bool flag = xmlTextReader.MoveToFirstAttribute(); flag; flag = xmlTextReader.MoveToNextAttribute()) { this.orderedAttributes.Add(xmlTextReader.Name); if (trackingTextReader.ReadToPosition(xmlTextReader.LineNumber, xmlTextReader.LinePosition)) this.leadingSpaces.Add(xmlTextReader.Name, trackingTextReader.PrecedingWhitespace); } int length = elementStartTag.Length; if (elementStartTag.EndsWith("/>", StringComparison.Ordinal)) --length; if (!trackingTextReader.ReadToPosition(length)) return; this.leadingSpaces.Add(string.Empty, trackingTextReader.PrecedingWhitespace); }