XmlDocument GetInnerDoc (XmlDocument doc, int i, string [] sectionPath)
{
if (++i >= sectionPath.Length)
return doc;
if (doc.DocumentElement == null)
return null;
XmlNode node = doc.DocumentElement.FirstChild;
while (node != null) {
if (node.Name == sectionPath [i]) {
ConfigXmlDocument result = new ConfigXmlDocument ();
result.Load (new StringReader (node.OuterXml));
return GetInnerDoc (result, i, sectionPath);
}
node = node.NextSibling;
}
return null;
}