internal int RecursiveRemoveText(XElement element, Formatting formattingToMatch, MatchFormattingOptions formattingOptions) { var count = 0; foreach (var subElement in element.Elements()) { if ("rPr".Equals(subElement.Name.LocalName) && (HelperFunctions.ContainsEveryChildOf(formattingToMatch.Xml, subElement, formattingOptions))) { subElement.Parent.Remove(); ++count; } count += RecursiveRemoveText(subElement, formattingToMatch, formattingOptions); } return(count); }