/// <summary> /// Determines whether the specified message contains tag under the parentTag. /// </summary> public static bool ContainsTag(this XmlContainer message, String parentTag, String tag) { if (String.IsNullOrEmpty(parentTag)) { throw new ArgumentException("parentTag"); } if (String.IsNullOrEmpty(tag)) { throw new ArgumentException("tag"); } try { XElement doc = XElement.Parse(message.GetXmlString(XmlNamespaceOption.IgnoreNamespaces)); var parentElement = doc.GetElementWithName(parentTag); return(null != parentElement && null != parentElement.GetElementWithName(tag)); } catch (XmlException e) { Logger.LogException(String.Empty, e); return(false); } }
/// <summary> /// Returns value of given tag in given message, null otherwise /// </summary> public static String ValueOf(XmlContainer message, String tag) { if (null == message) { throw new ArgumentNullException(); } if (String.IsNullOrEmpty(tag)) { throw new ArgumentException(); } XElement doc = XElement.Parse(message.GetXmlString(XmlNamespaceOption.IgnoreNamespaces)); var element = doc.GetElementWithName(tag); return(null == element ? null : element.Value); }
/// <summary> /// Returns attributes of given tag in given message, null otherwise /// </summary> public static XAttribute[] AttributesOf(XmlContainer message, String tag) { if (null == message) { throw new ArgumentNullException(); } if (String.IsNullOrEmpty(tag)) { throw new ArgumentException(); } XElement doc = XElement.Parse(message.GetXmlString(XmlNamespaceOption.IgnoreNamespaces)); var element = doc.Descendants().FirstOrDefault(item => item.Name.LocalName == tag); return(null == element ? null : element.Attributes().ToArray()); }