xn/Parser/XmlFragParser.cs

25 lines
755 B
C#

using Sprache;
namespace XNeedle.Parser
{
public class XmlFragParser
{
public static Parser<string> 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<string> ChecksumData(string tagName)
{
var closing = "</" + tagName + ">";
return
from preamble in OpeningTagAnchor(tagName)
from content in Parse.AnyChar.Until(Parse.String(closing))
select new string([.. content]) + closing;
}
}
}