@M3fist0

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

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

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

Большое спасибо заранее!
  • Вопрос задан
  • 3259 просмотров
Решения вопроса 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();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы