serv
в вашем XML является префиксом пространства имен . Он должен быть связан с некоторым URI, который идентифицирует пространство имен. Найдите такой атрибут в своем XML:
xmlns:serv="..."
Значение внутри кавычек будет пространством имен. Теперь в вашем коде C # вы используете этот URI для создания объекта XNamespace
:
private static readonly XNamespace serv = "...";
И затем вы можете использовать его в таких запросах:
string value = doc
.Descendants(serv + "header").First()
.Descendants(serv + "response").First()
.Descendants(serv + "result").First()
.Value;
Кстати, вам следует рассмотреть возможность использования .Element ()
, а не .Descendants (). First ()
.
Это двоеточие означает, что XML использует пространства имен . На основе этого сообщения в блоге , написанного кем-то о LINQ, XML и пространствах имен, вот версия вашего кода, которую вы, возможно, захотите попробовать. :[1216pting