К вашему сведению, это очень похоже на мой последний вопрос: Есть ли более быстрый способ проверить элемент XML в LINQ to XML и проанализировать bool?
В настоящее время я использую следующий метод расширения, который я сделал для получения значений int элементов, используя LINQ to XML. Он использует Any (), чтобы увидеть, есть ли какие-либо элементы с данным именем, и если они есть, он анализирует значение для int. В противном случае возвращается 0.
Основное использование этого метода - когда я анализирую XML в объектах C #, поэтому я не хочу, чтобы что-то взрывалось, когда элемента там нет. Я мог бы изменить его, чтобы попытаться выполнить синтаксический анализ, но сейчас я предполагаю, что если элемент присутствует, то синтаксический анализ должен пройти успешно.
Есть ли лучший способ сделать это?
/// <summary>
/// If the parent element contains a element of the specified name, it returns the value of that element.
/// </summary>
/// <param name="x">The parent element.</param>
/// <param name="elementName">The name of the child element to check for.</param>
/// <returns>The int value of the child element if it exists, or 0 if it doesn't.</returns>
public static int GetIntFromChildElement(this XElement x, string elementName)
{
return x.Elements(elementName).Any() ? int.Parse(x.Element(elementName).Value) : 0;
}