参考

依存

iconv
↑
libxml2
  • iconv(アイコンブ)は異なる文字コード間の相互変換を行う標準API

概要

  • DOM (Document Object Model)

    • ツリー・ベースのAPI
  • SAX (Simple API for XML)

    • イベント・ベースのAPI

DOM

技術者のためのXML再入門(10):XMLプログラミングのためのAPI - @IT

DOMの場合、プロセッサはXMLデータを一気に読み込んで構文解析し、メモリ上にツリーを展開する(このツリーを「DOMツリー」と呼ぶ)。DOMでは、このメモリ上に展開されたDOMツリーにアクセスしたり、要素を追加・削除することでXMLデータの構造を変更することができる。このツリー上の各要素にランダムにアクセスするためのインターフェイスを定義したものがDOMのAPIである。DOMツリーのオブジェクトは、プログラミング言語やOSにかかわらず同じ構造であるので、プログラミング言語やプラットフォームに依存しないアプリケーション開発が可能だ。とりわけ、ツリーにランダムにアクセスすることができるので、XMLデータの構造を大きく変更したい場合にはDOMが有効だ。

SAX

技術者のためのXML再入門(10):XMLプログラミングのためのAPI - @IT

一方のSAXの場合、DOMのようにメモリ上にツリーを構築することなく、先頭から順にXMLデータを読み込んでいき、“要素の開始”や“要素の終わり”といったイベントを生成、その都度アプリケーションに通知する。アプリケーションはそれらのイベントを受け取ったときの処理を定義しておき、イベントを受け取ったときに呼び出されて処理を行う。SAXはイベント駆動型のAPIなので、メモリ消費量もDOMの場合と比べて少なくて済む。扱うXMLデータの容量が大きい場合にはSAXが有効だ。