public void ToXNameTest() { // Arrange const string name = "TestName"; XDocument document = new XDocument(new XElement("root", new XElement("record", new XElement("testName", "testing")))); // Act XName xName = name.ToXName(document); // Assert Assert.Equal(name.ToLower(), xName?.ToString().ToLower()); }
// return a string of the form "{http://my.namespace}TagName" internal override string GetXElementTagName(object item) { XName name = ((XElement)item).Name; return((name != null) ? name.ToString() : null); }
/// <summary> /// Returns a filtered collection of the attributes of every element in the source /// collection. Only elements that have a matching <see cref="System.Xml.Linq.XName"/> are /// included in the collection. /// </summary> /// <param name="elements"></param> /// <param name="name"></param> /// <param name="ignoreCase"></param> /// <returns></returns> public static IEnumerable <XAttribute> Attributes(this IEnumerable <XElement> elements, XName name, bool ignoreCase) { if (ignoreCase) { return(elements.Attributes().Where(p => p.Name.ToString().ToLower() == name.ToString().ToLower())); } else { return(elements.Attributes(name)); } }
/// <summary> /// Provides a case-insensitive comparison between an XName element and a string. /// </summary> /// <param name="xname">The XName to compare</param> /// <param name="name">The string to compare</param> /// <returns>Whether or not the XName and the string where the same (case-insensitive)</returns> public static bool Is(this XName xname, string name) { return(xname.ToString().Equals(name, StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// Returns the <see cref="System.Xml.Linq.XAttribute"/> of this <see cref="System.Xml.Linq.XElement"/> that /// has the specified <see cref="System.Xml.Linq.XName"/>, optionally ignoring case. /// </summary> /// <param name="element"></param> /// <param name="name"></param> /// <param name="ignoreCase"></param> /// <returns></returns> public static XAttribute Attribute(this XElement element, XName name, bool ignoreCase) { if (ignoreCase) { return(element.Attributes().Where(p => p.Name.ToString().ToLower() == name.ToString().ToLower()).FirstOrDefault()); } else { return(element.Attribute(name)); } }