I have an XML document that looks like this:
In addition to the correct remark by @Mads-Hansen, you have the typical problem of not defining a (nonempty) prefix for one of the namespaces.
Remember: XPath considers any unprefixed name to be in "no namespace".
Therefore this is wrong:
Source.XPathSelectElement("//kmsg", oManager)
This XPath expression wants to select all kmsg elements that are in "no namespace" and it correctly selects nothing, because any kmsg elements in the provided XML document are in the "http://url1" namespace, and not in "no namespace".
To do it correctly:
oManager.AddNamespace("xxx", "http://url1");
Source.XPathSelectElement("//xxx:kmsg", oManager)
The namespace-URI's declared in your source XML do not match the namespace-URI's that you are registering with your XmlNamespaceManager.
In your source XML:
http://url1 url1In your XmlNamespaceManager you declared:
http://xml.kerridge.net/k8msghttp://xml.kerridge.net/k8msgEnvelopeThe namespace-uri values have to match, otherwise you are selecting different element names and will never get a match.