2012年07月22日

正しい XML ファイルを出力することが簡単になる vbslib 4

XML ファイルは、< > で囲んだタグを含むテキスト・ファイルです。 こんな感じです。

<?xml version="1.0" encoding="Shift_JIS"?>
<Top>
<Tag attr="val">text</Tag>
</Top>

XML ファイルは、XML のパーサーを使わなくても、テキスト・ファイルを出力する関数を使って簡単に作ることができます。

ただし、注意しなければならないことがあります。 テキスト(上記サンプルの text)や、属性の値(上記サンプルの val)に使えない文字があることです。

たとえば、テキストに < を使うことができません。 当然ですよね。 タグの開始を表す文字ですから。

このような使えない文字は、実体参照(entity reference)というプレースホルダ(place holder)を使って記述します。 プレースホルダは、「場所取り」という意味ですが、XML では「文字の置き換え」という意味で使っています。

実体参照は、& から始まり、; で終わります。 たとえば、< という文字の実体参照は、&lt; です。 lt は、Less Than(より小さい)の略です。

vbslib 4 には、実体参照に置き換える関数が用意されています。
XmlText 関数は、テキストに使えない文字を実体参照に換えます。
XmlAttr 関数は、" で囲まれた属性の値に使えない文字を実体参照に換えます。
XmlAttrA 関数は、' で囲まれた属性の値に使えない文字を実体参照に換えます。

これらの関数を使えば、どんなデータであっても、XML ファイルを入力するときに、エラーにならなくなります。 逆にいえば、実体参照に換える関数を使わないと、ある日、突然エラーが発生する可能性があるということです。

XML ファイルを入力するときは、XML パーサーを使わないと難しいですが、vbslib 4 には、Windows に入っている XML パーサーが簡単に使えるようになる LoadXML 関数が用意されています。

vbslib 4 は、3-clause BSD ライセンスで提供されています。 誰でも無料で自由に使えます。 商用利用でも構いませんし、改変も再配布も自由です。

http://www.sage-p.com/vbslib/vbslib.htm

sage_p at 22:34│Comments(0)TrackBack(0)プログラミング 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔