Mega Code Archive

 
Categories / C# / XML
 

Get attribute value or throw exception

using System; using System.Xml; public class XmlUtil {     #region GetAttrib(XmlNode node, string attrib, string defVal)     public static string GetAttrib(XmlNode node, string attrib, string defVal)     {         XmlAttribute xmlAttrib = node.Attributes[attrib];         if (xmlAttrib == null)             return defVal;         string val = xmlAttrib.Value;         return (val == null) ? defVal : val;     }     #endregion     #region GetBoolAttrib(XmlNode node, string attrib, bool defVal)     public static bool GetBoolAttrib(XmlNode node, string attrib, bool defVal)     {         XmlAttribute xmlAttrib = node.Attributes[attrib];         if (xmlAttrib == null)             return defVal;         string val = xmlAttrib.Value;         if (val == null || val == string.Empty)             return defVal;         bool returnVal = (val == "1" || val.ToLower() == "true");         return returnVal;     }     #endregion     #region GetBoolAttribOrThrow(XmlNode node, string attrib)     public static bool GetBoolAttribOrThrow(XmlNode node, string attrib)     {         string val = GetAttrib(node, attrib, null);         if (val == null)             throw new Exception(String.Format("Attribute '{0}' not specified in node '{1}'", attrib, node.Name));         if (val == null || val == string.Empty)             return false;         bool returnVal = (val == "1" || val.ToLower() == "true");         return returnVal;     }     #endregion     #region GetIntAttrib(XmlNode node, string attrib, int defVal)     public static int GetIntAttrib(XmlNode node, string attrib, int defVal)     {         XmlAttribute xmlAttrib = node.Attributes[attrib];         if (xmlAttrib == null)             return defVal;         string val = xmlAttrib.Value;         if (val == null || val == string.Empty)             return defVal;         int returnVal = defVal;         int.TryParse(val, out returnVal);         return returnVal;     }     #endregion     #region GetIntAttribOrThrow(XmlNode node, string attrib)     public static int GetIntAttribOrThrow(XmlNode node, string attrib)     {         string val = GetAttrib(node, attrib, null);         if (val == null)             throw new Exception(String.Format("Attribute '{0}' not specified in node '{1}'", attrib, node.Name));         if (val == null || val == string.Empty)             return 0;         int returnVal = 0;         int.TryParse(val, out returnVal);         return returnVal;     }     #endregion     #region GetInt64Attrib(XmlNode node, string attrib, Int64 defVal)     public static Int64 GetInt64Attrib(XmlNode node, string attrib, Int64 defVal)     {         XmlAttribute xmlAttrib = node.Attributes[attrib];         if (xmlAttrib == null)             return defVal;         string val = xmlAttrib.Value;         if (val == null || val == string.Empty)             return defVal;         Int64 returnVal = defVal;         Int64.TryParse(val, out returnVal);         return returnVal;     }     #endregion     #region GetInt64AttribOrThrow(XmlNode node, string attrib)     public static Int64 GetInt64AttribOrThrow(XmlNode node, string attrib)     {         string val = GetAttrib(node, attrib, null);         if (val == null)             throw new Exception(String.Format("Attribute '{0}' not specified in node '{1}'", attrib, node.Name));         if (val == null || val == string.Empty)             return 0;         Int64 returnVal = 0;         Int64.TryParse(val, out returnVal);         return returnVal;     }     #endregion }