private static void Traverse(TextWriter writer, XPathNavigator nav, int depth = 0)
{
var leadIn = new string(Constants.Tab, depth);
if (nav.NodeType == XPathNodeType.Root)
nav.MoveToFirstChild();
do
{
switch (nav.NodeType)
{
case XPathNodeType.Element:
WriteElement(writer, nav, depth, leadIn);
break;
case XPathNodeType.Text:
WriteTextData(writer, nav, leadIn);
break;
case XPathNodeType.Comment:
WriteComment(writer, nav, leadIn);
break;
default:
throw new InvalidDataException("Encountered unsupported node type of " + nav.NodeType);
}
} while (nav.MoveToNext());
}