using System.Xml.Linq; using System.Xml.XPath; namespace NzbDrone.Core.Download.Extensions { internal static class XmlExtensions { public static string GetStringValue(this XElement element) { return element.ElementAsString("string"); } public static long GetLongValue(this XElement element) { return element.ElementAsLong("i8"); } public static int GetIntValue(this XElement element) { return element.ElementAsInt("i4"); } public static string ElementAsString(this XElement element, XName name, bool trim = false) { var el = element.Element(name); return string.IsNullOrWhiteSpace(el?.Value) ? null : (trim ? el.Value.Trim() : el.Value); } public static long ElementAsLong(this XElement element, XName name) { var el = element.Element(name); return long.TryParse(el?.Value, out var value) ? value : default; } public static int ElementAsInt(this XElement element, XName name) { var el = element.Element(name); return int.TryParse(el?.Value, out var value) ? value : default(int); } public static int GetIntResponse(this XDocument document) { return document.XPathSelectElement("./methodResponse/params/param/value").GetIntValue(); } public static string GetStringResponse(this XDocument document) { return document.XPathSelectElement("./methodResponse/params/param/value").GetStringValue(); } } }