Rhino.Xmlimpl.XmlProcessor.BeautifyElement C# (CSharp) Метод

BeautifyElement() приватный Метод

private BeautifyElement ( XmlElement e, int indent ) : void
e System.Xml.XmlElement
indent int
Результат void
		private void BeautifyElement(XmlElement e, int indent)
		{
			StringBuilder s = new StringBuilder();
			s.Append('\n');
			for (int i = 0; i < indent; i++)
			{
				s.Append(' ');
			}
			string afterContent = s.ToString();
			for (int i_1 = 0; i_1 < prettyIndent; i_1++)
			{
				s.Append(' ');
			}
			string beforeContent = s.ToString();
			//    We "mark" all the nodes first; if we tried to do this loop otherwise, it would behave unexpectedly (the inserted nodes
			//    would contribute to the length and it might never terminate).
			List<System.Xml.XmlNode> toIndent = new List<System.Xml.XmlNode>();
			bool indentChildren = false;
			for (int i_2 = 0; i_2 < e.ChildNodes.Count; i_2++)
			{
				if (i_2 == 1)
				{
					indentChildren = true;
				}
				if (e.ChildNodes.Item(i_2) is XmlText)
				{
					toIndent.Add(e.ChildNodes.Item(i_2));
				}
				else
				{
					indentChildren = true;
					toIndent.Add(e.ChildNodes.Item(i_2));
				}
			}
			if (indentChildren)
			{
				for (int i_3 = 0; i_3 < toIndent.Count; i_3++)
				{
					e.InsertBefore(e.OwnerDocument.CreateTextNode(beforeContent), toIndent[i_3]);
				}
			}
			XmlNodeList nodes = e.ChildNodes;
			List<XmlElement> list = new List<XmlElement>();
			for (int i_4 = 0; i_4 < nodes.Count; i_4++)
			{
				if (nodes.Item(i_4) is XmlElement)
				{
					list.Add((XmlElement)nodes.Item(i_4));
				}
			}
			foreach (XmlElement elem in list)
			{
				BeautifyElement(elem, indent + prettyIndent);
			}
			if (indentChildren)
			{
				e.AppendChild(e.OwnerDocument.CreateTextNode(afterContent));
			}
		}
	}