есть GetElementByTagName, который обрабатывает, если тег не существует - PullRequest
2 голосов
/ 25 апреля 2010

У меня есть следующий код ниже, но иногда тег «serve_description» отсутствует. Прямо сейчас я просто попытался обойти это, но я хотел выяснить, есть ли более чистый способ справиться с этим сценарием.

XmlElement servingElement = (XmlElement)servingNode;
serving.Id = Convert.ToInt32(servingElement.GetElementsByTagName("serving_id")[0].InnerText);
serving.Name = servingElement.GetElementsByTagName("serving_description")[0].InnerText;

1 Ответ

3 голосов
/ 25 апреля 2010

Я бы скорее проверил, что возвращаемый NodeList равен не равен нулю , и проверил бы, что число больше нуля , прежде чем использовать значение по умолчанию для . выгода .

Что-то простое, как

serving.Name = "defaultName";
XmlNodeList elemList = servingElement.GetElementsByTagName("serving_description");
if (elemList != null && elemList.Count > 0)
    serving.Name = elemList[0].InnerText;

EDIT

Если я не ошибаюсь, вам, возможно, даже не придется проверять null , поскольку метод GetElementsByTagName может просто возвращать пустой список (, но я не могу проверить, что щас извините )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...