Microsoft.CodeAnalysis.Sarif.Extensions.ConsumeElementOfDepth C# (CSharp) Method

ConsumeElementOfDepth() static private method

Consumes content from an XML reader until the end element of the element at endElementDepth endElementDepth, including the end element.
static private ConsumeElementOfDepth ( this xmlReader, int endElementDepth ) : void
xmlReader this The whose contents shall be consumed.
endElementDepth int The endElementDepth of node to consume.
return void
        internal static void ConsumeElementOfDepth(this XmlReader xmlReader, int endElementDepth)
        {
            int enteringReaderDepth = xmlReader.Depth;

            if (enteringReaderDepth < endElementDepth)
            {
                return;
            }

            if (enteringReaderDepth == endElementDepth)
            {
                // Move to the following element
                xmlReader.Read();
            }

            while (xmlReader.Depth > endElementDepth && xmlReader.Read()) { }

            if (xmlReader.NodeType == XmlNodeType.EndElement)
            {
                // Consume the end element
                xmlReader.Read();
            }
        }