Reflection C#

using System;
using System.Linq;
using System.Xml.Linq;
namespace DACU.Tools
{
    static class XmlUtils
    {
        public static bool? NodeValueToBool(XElement node)
        {
            if (node == null) return null;
            return node.Value == "1" ? (bool?)true : (node.Value == "0" ? (bool?)false : null);
        }
        public static int[] NodeValueToArray(XElement node)
        {
            if (node == null || node.IsEmpty) return null;
            var ints = node.Elements("lid");
            return ints == null ?
                null
                :
                ints.Where(elem => !String.IsNullOrWhiteSpace(elem.Value)).Select(elem => Convert.ToInt32(elem.Value)).ToArray();
        }
        public static string GetStringFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            return att == null || att.Value == null ? "" : att.Value;
        }
        public static int GetIntFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return -1;
            int value;
            if (int.TryParse(att.Value, out value))
                return value;
            return -1;
        }
        public static double GetDoubleFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return double.NaN;
            double value;
            if (double.TryParse(att.Value, out value))
                return value;
            return double.NaN;
        }
        public static float GetFloatFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return float.NaN;
            float value;
            if (float.TryParse(att.Value, out value))
                return value;
            return float.NaN;
        }
        public static bool GetBoolFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return false;
            bool value;
            if (bool.TryParse(att.Value, out value))
                return value;
            return false;
        }
    }
}