Задать вопрос
@M3fist0

Как проверить наличие элемента в xml-файле?

Всем привет!
Использую LinqToXML. Нужно проверить наличие необходимых элементов в xml-файле, так как при попытке читать несуществующие элементы происходит исключение (которое я, конечно же, обрабатываю). Однако, хотелось бы сначала сделать проверку на существование нужных элементов, чтобы без исключения изменить логику программы.
Например, я использую конструкцию:
IEnumerable<XElement> XMLDataList = XMLFile.Root.Element("FirstNode").Element("SecondNode").Descendants("NodesList");

В данном случае получаю exception, если xml-файл не содержит элементов /FirstNode/SecondNode/NodesList.
По теме в поисковиках ничего стоящего не нашел. Советуют использовать XPath, либо XmlReader.

Большое спасибо заранее!
  • Вопрос задан
  • 3391 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
@M3fist0 Автор вопроса
Мое упущение, не уточнил. Нужно проверить весь путь /FirstNode/SecondNode/NodesList на существование.
Есть ли способ, кроме множества вложенных if-ов с проверками каждого узла методом Any()?
То есть я хочу реализовать такую логику программы:
Если /FirstNode/SecondNode/NodesList существует
то шаг1
Иначе шаг2.


В общем решил свой же вопрос (LINQ to XML, наверно, по-другому и не может):
bool IsNodeExist = XMLfile.Elements().Any(node => node.Name == "Address");

Иван Филатов, спасибо за подсказку!
Учитесь, кулхацкеры :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
XMLFile.Root.Element("FirstNode").Element("SecondNode").Element("NodesList").Any();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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