Although this class is not optimised for real-time parsing, it should be sufficient for all but the longest of documents, especially if combined with ASP.NET caching.