...The structure of the tree can be shown and it can be rendered as plain text.
The source is plain Delphi pascal, requiring a version that supports Tdictionary. There is no dependency on 3rd party units.
The file to be parsed must have valid HTML4/5 tags. It is not necessary that the HTML is ‘correct’ in the sense that end tags may be wrongly placed or be absent altogether. The speed of processing (reading+parsing) is formidable: 15-40 msec per Mbyte or around 1 msec per 1000 HTML tags.