К вашему сведению, это очень похоже на мой последний вопрос: Есть ли более быстрый способ проверки элемента XML в LINQ to XML?
В настоящее время я использую следующий метод расширения, который я использовал для получения значений bool элементов, используя LINQ to XML. Он использует Any (), чтобы увидеть, есть ли какие-либо элементы с данным именем, и если они есть, он анализирует значение для bool. В противном случае возвращается false. Основное использование этого метода - когда я разбираю 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 bool value of the child element if it exists, or false if it doesn't.</returns>
public static bool GetBoolFromChildElement(this XElement x, string elementName)
{
return x.Elements(elementName).Any() ? bool.Parse(x.Element(elementName).Value) : false;
}