in xml docs, the namespace name is fixed, but the prefix can vary by document. something like:
XmlNode? GetDetails(XmlDocument doc)
{
var nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("n1", "namespace1");
nsmgr.AddNamespace("n2", "namespace2");
nsmgr.AddNamespace("n3", "namespace3");
var xPathString = "//n1:main/n1:Body/n3:Details";
var xmlNode = doc.DocumentElement!.SelectSingleNode(xPathString, nsmgr);
return xmlNode;
}