HTMLと何が違うの?
HTMLは「Webページを表示するため」の決められたタグセット。XMLは「データを記述するため」に自分でタグを自由に定義できる。1000のように意味のあるタグ名をつけてデータ構造を表現するんだ。HTMLは見た目、XMLはデータが主役だよ
JSONとどう違うの?
XMLは冗長だけど厳密。スキーマ(XSD)で構造を定義したり、名前空間で衝突を避けたりできる。JSONは軽量でJavaScriptと相性が良い。WebのAPIはJSON主流、企業間データ連携や設定ファイルはXMLが多い。AndroidのレイアウトやMavenの設定ファイル(pom.xml)も今でもXMLだよ
まだXMLを学ぶ意味はある?
あるよ。SOAPベースの既存システムは大企業や金融機関に大量に残っている。SVG(画像)、XSLT(変換)、Atom/RSS(フィード)もXML。Java/.NETの設定ファイルもXMLが多い。新規開発でXMLを選ぶことは減ったけど、既存システムとの連携で避けて通れないんだよ
パースするにはどうする?
DOM方式(全体をメモリに読み込む)とSAX方式(逐次読み込み)がある。小さいファイルはDOM、大きいファイルはSAX。PythonならElementTree、JavaならJAXB、JavaScriptならDOMParser。XPathを使うと特定の要素を簡潔に指定できるよ。ただしXML外部実体攻撃(XXE)には注意してパーサーの外部実体処理を無効化しようね