Why a parser? And the difference between SGML and XML

What is the need for parser? What is the difference between SGML and XML?
An XML document has defined elements and attributes. A parser exposes them to your application so you don't need to write code to break scan the tags and retrieve individual attributes.

WhatIs.com SGML defines SGML this way:

SGML (Standard Generalized Markup Language) is a standard for how to specify a document markup language or tag set. Such a specification is itself a document type definition (DTD). SGML is not in itself a document language, but a description of how to specify one. It is metadata.
XML, like HTML, is a SGML-based language. XML is extensible because the markup symbols are unlimited and self-defining.

This was first published in April 2004