using Sprache; namespace XNeedle.Parser { public class XmlFragParser { public static Parser OpeningTagAnchor(string tag) { return from lbraket in Parse.Char('<') from tagname in Parse.String(tag) from any in Parse.CharExcept('>').Many() from rbraket in Parse.Char('>') select new string([.. any]); } public static Parser ChecksumData(string tagName) { var closing = ""; return from preamble in OpeningTagAnchor(tagName) from content in Parse.AnyChar.Until(Parse.String(closing)) select new string([.. content]) + closing; } } }