Доступ к значениям веток XML документа через XDocument и XPath при заданном Xmlnamespace

Не часто сталкиваюсь с разбором 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 с умом.


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика