private bool Fill(XContainer sourceContainer, XmlDocument xmlDoc)
{
var xmlNodeList = xmlDoc.GetElementsByTagName(sourceContainer.Name);
if (xmlNodeList.Count > 0)
{
_newRoot = sourceContainer.Clone();
_newRoot.Containers.Clear();
ResolveAttributes(_newRoot, ((XmlElement)xmlNodeList[0]));
ResolveElements(_newRoot, ((XmlElement)xmlNodeList[0]));
_newRoot.Value = xmlNodeList[0].Value;
_newRoot.Name = xmlNodeList[0].Name;
foreach (var element in xmlNodeList[0].ChildNodes)
{
if (!(element is XmlComment))
{
if (element is XmlText)
{
_newRoot.Value = ((XmlText)element).Value;
}
foreach (var xContainer in sourceContainer.Containers)
{
var name = ((XmlElement)element).Name;
if (xContainer.Name == name)
{
FillChildNodes(_newRoot, xContainer, (XmlElement)element);
}
}
}
}
return true;
}
return false;
}