Не часто сталкиваюсь с разбором XML, потому каждый раз как в первый раз. На этот раз попался документ, который содержал namespace, что добавило дополнительной траты времени на разбирательство. Ниже решение
XDocument xdoc = XDocument.Load(filepath); XNamespace ns = xdoc.Root.GetDefaultNamespace(); XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable()); xnm.AddNamespace("ns", ns.NamespaceName); var org = xdoc.XPathSelectElement("//ns:PaySlipBody/ns:Firm", xnm).ToString(); var chargedNames = xdoc.XPathSelectElements("//ns:PaySlipBody/ns:Charged/ns:ChargeName", xnm);
Весь сыр-бор из-за Namespace. Без него можно было бы обойтись без добавления дополнительного кода. Зато теперь, если программа обрабатывает несколько XML файлов, то не будет путаницы. Потому, при формировании XML прописывайте namespace с умом.