Невозможно проанализировать XML с помощью XElement - PullRequest
0 голосов
/ 31 января 2020

Озадачен тем, насколько тяжело это получается.

У меня есть xml вот так:

<Wibble xmlns="https://www.example.com">
 <Cat id="abc"></Cat>
 <Dog></Dog>
</Wibble>

Я хочу получить значение 'ab c '.

Я пробовал много разных вещей, но, похоже, ничего не работает.

var parsedXml = XElement.Parse(xml);

Если я сделаю:

parsedXml.Descendants();

Это дает мне различных потомков, Кошка и Собака.

Если я получу Descendants("Cat"), я получу ноль.

Я не понимаю, почему.

Я также пытался использовать пути с другими функциями, анализируя их как XDocument, все виды вещей, ничего не работает. Прежде чем я сдаюсь и в буквальном смысле отыграю чертову строку, есть ли хороший способ сделать это?

Может ли кто-нибудь помочь?

1 Ответ

3 голосов
/ 31 января 2020

Если я делаю Потомки («Кошка»), я получаю ноль.

Поскольку вы забыли о своем xml пространстве имен xmlns="https://www.example.com"

Правильный путь:

XNamespace ns = "https://www.example.com";
var car = xml.Descendants(ns + "Cat");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...