using System; using System.Globalization; using System.Xml; namespace Common { public static class XmlNodeExt { public static bool GetValueBool(this XmlNode xmlNode, string name, bool defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { if (node2.InnerText.ToLowerInvariant() == "true") return true; return false; } return defaultValue; } public static string GetValueString(this XmlNode xmlNode, string name, string defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { return node2.InnerText; } return defaultValue; } public static int GetValueInt(this XmlNode xmlNode, string name, int defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { if (int.TryParse(node2.InnerText, out int value)) { return value; } return defaultValue; } return defaultValue; } public static long GetValueLong(this XmlNode xmlNode, string name, long defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { if (long.TryParse(node2.InnerText, out long value)) { return value; } return defaultValue; } return defaultValue; } public static float GetValueFloat(this XmlNode xmlNode, string name, float defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { if (float.TryParse(node2.InnerText, out float value)) { return value; } return defaultValue; } return defaultValue; } public static double GetValueDouble(this XmlNode xmlNode, string name, double defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { if (double.TryParse(node2.InnerText, out double value)) { return value; } return defaultValue; } return defaultValue; } public static TimeSpan GetValueTimeSpan(this XmlNode xmlNode, string name, TimeSpan defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { return XmlConvert.ToTimeSpan(node2.InnerText); } return defaultValue; } public static DateTime GetValueDateTime(this XmlNode xmlNode, string name, DateTime defaultValue) { XmlNode node2 = xmlNode.SelectSingleNode(name); if (node2 != null) { return XmlConvert.ToDateTime(node2.InnerText, XmlDateTimeSerializationMode.RoundtripKind); } return defaultValue; } public static void SetValueBool(this XmlNode xmlNode, string name, bool value) { if (xmlNode.OwnerDocument != null) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = value.ToString(); } public static void SetValueString(this XmlNode xmlNode, string name, string value) { if (xmlNode.OwnerDocument != null && !string.IsNullOrEmpty(value)) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = value; } public static void SetValueInt(this XmlNode xmlNode, string name, int value) { if (xmlNode.OwnerDocument != null) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = value.ToString(); } public static void SetValueLong(this XmlNode xmlNode, string name, long value) { if (xmlNode.OwnerDocument != null) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = value.ToString(); } public static void SetValueFloat(this XmlNode xmlNode, string name, float value) { if (xmlNode.OwnerDocument != null) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = value.ToString(CultureInfo.InvariantCulture); } public static void SetValueDouble(this XmlNode xmlNode, string name, double value) { if (xmlNode.OwnerDocument != null) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = value.ToString(CultureInfo.InvariantCulture); } public static void SetValueTimeSpan(this XmlNode xmlNode, string name, TimeSpan value) { if (xmlNode.OwnerDocument != null && value != TimeSpan.Zero) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = XmlConvert.ToString(value); } public static void SetValueDateTime(this XmlNode xmlNode, string name, DateTime value) { if (xmlNode.OwnerDocument != null && value != DateTime.MinValue) xmlNode.AppendChild(xmlNode.OwnerDocument.CreateElement(name)).InnerText = XmlConvert.ToString(value, XmlDateTimeSerializationMode.RoundtripKind); } } }