C # Проверка элементов в XML-файле - PullRequest
0 голосов
/ 26 августа 2018

У меня есть следующий XML-файл:

  <Resources>
    <a>123.png</a>
 </Resources>
 <Resources>
    <a>Background\345.png</a>
 </Resources>
<Resources>
    <b>d1.wav</b>
</Resources>

Я хочу проверить, чтобы элементы выполняли различные функции:

        foreach (var downloadFile in downloadFiles.Elements("Resources"))
        {
            if (downloadFile.Element("a").Value != null)
            {
                  // function for a
            }
            else if (downloadFile.Element("b").Value != null)
            {
                  // function for b
            }
         }

При появлении ошибки "System.NullReferenceException"элемент достижения петли b.

Ребята, вы знаете, что не так?

1 Ответ

0 голосов
/ 26 августа 2018

Глядя на ваш XML, не все ресурсы имеют элемент b, поэтому вы получаете NRE, потому что Element("b") возвращает ноль.Если вы хотите проверить, существует ли элемент, сравните Element со значением NULL без доступа к свойству Value:

if (downloadFile.Element("b") != null)
...