private static object TryGetElementsOrValue(IEnumerable<XElement> requestedElements) { if (requestedElements.HasPluralElements()) { if (DynamicXmlExtensions.ContainsValueOnly((XElement) requestedElements.First())) return requestedElements.Select(e => e.Value); return new DynamicXmlReader(requestedElements); } if (requestedElements.HasSingleElement()) { var element = requestedElements.Single(); if (element.ContainsValueOnly()) return element.Value; return new DynamicXmlReader(element, true); } return null; }
private static object TryGetAttributesOrValue(IEnumerable<XAttribute> requestedAttributes) { if (requestedAttributes.HasSingleElement()) return requestedAttributes.Single().Value; return TryGetAttributes(requestedAttributes); }