public static IEnumerable <AspxNode> ElementsBeforeSelf(this AspxNode item) { if (item.Ancestors().FirstOrDefault() == null) { yield break; } foreach (var child in item.Ancestors().First().Elements()) { if (item.Equals(child)) { break; } yield return(child); } }
public static IEnumerable <AspxNode> ElementsAfterSelf(this AspxNode item) { if (item.Ancestors().FirstOrDefault() == null) { yield break; } bool afterSelf = false; foreach (var child in item.Ancestors().First().Elements()) { if (afterSelf) { yield return(child); } if (item.Equals(child)) { afterSelf = true; } } }