AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.11" />

 MathElementFactory

Provides string to MathElement instance creation mappings.
using AngleSharp.Dom; using AngleSharp.Dom.Mathml; using AngleSharp.Html; using System; using System.Collections.Generic; namespace AngleSharp.Services.Default { internal sealed class MathElementFactory : IElementFactory<MathElement> { private delegate MathElement Creator (Document owner, string prefix); private readonly Dictionary<string, Creator> creators = new Dictionary<string, Creator>(StringComparer.OrdinalIgnoreCase) { { TagNames.Mn, (Document document, string prefix) => new MathNumberElement(document, prefix) }, { TagNames.Mo, (Document document, string prefix) => new MathOperatorElement(document, prefix) }, { TagNames.Mi, (Document document, string prefix) => new MathIdentifierElement(document, prefix) }, { TagNames.Ms, (Document document, string prefix) => new MathStringElement(document, prefix) }, { TagNames.Mtext, (Document document, string prefix) => new MathTextElement(document, prefix) }, { TagNames.AnnotationXml, (Document document, string prefix) => new MathAnnotationXmlElement(document, prefix) } }; public MathElement Create(Document document, string localName, string prefix = null) { Creator value = null; if (creators.TryGetValue(localName, out value)) return value(document, prefix); return new MathElement(document, localName, prefix, NodeFlags.None); } } }