Selecting from an XmlNode using XmlNamespaceManager

.net, c#, xml

Solution

Can you use

XPathNavigator nav = XmlNode.CreateNavigator();
XmlNamespaceManager man = new XmlNamespaceManager(nav.NameTable);

Including the rest in case it'll be helpful:

man.AddNamespace("app", "http://www.w3.org/2007/app"); //Gotta add each namespace
XPathNodeIterator nodeIter = nav.Select(xPathSearchString, man);

while (nodeIter.MoveNext())
{
    var value = nodeIter.Current.Value;
}

http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.createnavigator.aspx

Problem

I have been looking for ages to find a way to select nodes from an `XmlNode`(NOT AN `XmlDocument`) which has multiple namespaces. Almost every post that I have searched has advised me to use an `XmlNamespaceManager`, however, `XmlNamespaceManager` needs an `XmlNameTable` which does not exists for an `XmlNode`. I tried doing this with an `XmlDocument` and it worked since `XmlDocument` has a property `XmlDocument.NameTable` but it does not exists for XmlNode. I tried creating a NameTable manually but it does not work as the same piece of code works when I use an `XmlDocument`. I guess I need to populate that NameTable with something or somehow bind it to the `XmlNode` to make this work. Please suggest.

Original source