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
}
Related examples in the same category