Как запросить XDocument с LINQ, когда элементы имеют двоеточие на свое имя?

Это там . Все еще в бета-версии все же.

20
задан Jim 28 October 2009 в 21:04
поделиться

2 ответа

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 () .

40
ответ дан 29 November 2019 в 23:30
поделиться

Это двоеточие означает, что XML использует пространства имен . На основе этого сообщения в блоге , написанного кем-то о LINQ, XML и пространствах имен, вот версия вашего кода, которую вы, возможно, захотите попробовать. :[1216pting

6
ответ дан 29 November 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: