[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

XMLパーサ

pointこの用語のポイント

pointプログラムだよ

pointXMLファイルの中身を解析して、使いやすい形に整形するよ

スポンサーリンク

簡単に書くよ

XMLパーサとは

パッと見でごちゃごちゃしているXMLファイルの中身を解析して、プログラムや人間様が使いやすいように、すっきりした形に整形してくれるプログラムのこと
です。

image piyo

詳しく書くよ

まずは予備知識から行きましょう。

XMLは「マークアップ言語のひとつでHTMLの親戚みたいなもの」ね。
よく分からなければ「文章に対する目印の付け方ルール(の一つ)」くらいに解釈してください。

この「XML」というルールに沿って作られた文書ファイルを、一般的には「XMLファイル」と呼びます。
XMLファイルはテキストファイル(中身が文字だけのファイル)です。
拡張子は「.xml」の場合が多いですが、違う場合もあります。

XMLパーサ

XMLファイルの中身は、例えば以下のようになっています。

<?xml version="1.0" encoding="Shift_JIS" ?>
<staff>
    <member>
        <name>ピヨ太</name>
        <position>社長</position>
        <age>30代のおっさん</age>
    </member>
    <member>
        <name>ピヨ子</name>
        <position>営業部長</position>
        <age>永遠の美少女</age>
    </member>
</staff>


例えば

ピヨ太

という文字が

<name> ~ </name>

という目印で囲まれていますよね。

このように文字を目印で囲むことによって

ピヨ太ってのはname(名前)だよ

というのを表現しています。

これがXMLファイルの基本です。

ただし、これはあくまで人間様から見た場合のお話です。
先ほど

XMLファイルはテキストファイル(中身が文字だけのファイル)

と書きました。

そうです。
プログラムさんにとっては、XMLファイルはただの文字の集まりです。

「<name> ~ </name>」に囲まれているからピヨ太ってのはname(名前)だな、なんて考えてはくれません。
そこら辺の日記とかと同じように扱います。
いくら目印で囲っても、察してはくれないのです。

そのため、プログラムからXMLファイルの各項目を扱うときには

1.XMLファイルの中身を全部読み込む
2.「1.」で読み込んだ内容から、目印で囲まれたところを取り出す
3.「2.」で取り出した内容を使いやすい形に直す


という手順が必要になります。

まず

<?xml version="1.0" encoding="Shift_JIS" ?>
<staff>
    <member>
        <name>ピヨ太</name>
        <position>社長</position>
        <age>30代のおっさん</age>
    </member>
    <member>
        <name>ピヨ子</name>
        <position>営業部長</position>
        <age>永遠の美少女</age>
    </member>
</staff>


の全体を見渡して、そこから

<name>ピヨ太</name>

を取り出して、そこから例えば

name:ピヨ太

のような形に整形してあげるのです。

しかも「name」自体は「<staff> ~ </staff>」に囲まれている「<member> ~ </member>」に囲まれている「name」です。
「staff」の中の「member」の中の「name」と言えるでしょう。
実際には

staff→member→name:ピヨ太

のような形にしてあげる必要があります。

ここまでやって、はじめてプログラムさんが「あぁ、この項目があって、その値はこれなのね」と判別できるようになるのです。

この手順をちまちまやってくれるプログラム(の部品)やソフトウェアが「XMLパーサ」です。
XMLファイルの中身を解析して、プログラムや人間様が使いやすい形に整形してくれます。

XMLパーサ2

XMLパーサは、既にどこかの誰かが用意してくれているものを使う場合もあれば、自前で作る場合もあります。
XMLファイルを普通に扱うのであれば、既に用意されているものを使うでしょう。
ちょっと特殊なことをやりたいときは、自前で作るはずです。
いずれにせよ

1.XMLファイルの中身を解析する
2.扱いやすい形に整形する


プログラムであれば、XMLパーサと呼んで差し支えはないと思います。

以上でXMLパーサの説明は終わりですが、せっかくなので、もう少しプログラマさん向けの説明も書いておきますね。

PHPを例に説明します。
大したことは書かないので、PHPを知らなくても問題はありません。

あなたがプログラムでデータを扱うとき

$xml = '<?xml version="1.0" encoding="Shift_JIS" ?><staff><member><name>ピヨ太</name><position>社長</position><age>30代のおっさん</age></member><member><name>ピヨ子</name><position>営業部長</position><age>永遠の美少女</age></member>';



$xml = array(
    array(
        'name' => 'ピヨ太',
        'position' => '社長',
        'age' => '30代のおっさん',
    ),
    array(
        'name' => 'ピヨ子',
        'position' => '営業部長',
        'age' => '永遠の美少女',
    )
);


では、どちらが扱いやすいでしょうか。

恐らく10人中10人が後者を選ぶはずです。

ところがですね。

XMLファイルを読み込んだ直後の状態は前者の

$xml = '<?xml version="1.0" encoding="Shift_JIS" ?><staff><member><name>ピヨ太</name><position>社長</position><age>30代のおっさん</age></member><member><name>ピヨ子</name><position>営業部長</position><age>永遠の美少女</age></member>';

になっているのです。
これを

$xml = array(
    array(
        'name' => 'ピヨ太',
        'position' => '社長',
        'age' => '30代のおっさん',
    ),
    array(
        'name' => 'ピヨ子',
        'position' => '営業部長',
        'age' => '永遠の美少女',
    )
);


に変えるお仕事をしているのが、XMLパーサです。

XMLパーサに対してXMLファイルを指定すると

$xml = array(
    array(
        'name' => 'ピヨ太',
        'position' => '社長',
        'age' => '30代のおっさん',
    ),
    array(
        'name' => 'ピヨ子',
        'position' => '営業部長',
        'age' => '永遠の美少女',
    )
);


の状態でデータを取り出せると思います。

これは、まずXMLパーサさんが

$xml = '<?xml version="1.0" encoding="Shift_JIS" ?><staff><member><name>ピヨ太</name><position>社長</position><age>30代のおっさん</age></member><member><name>ピヨ子</name><position>営業部長</position><age>永遠の美少女</age></member>';

の状態でXMLファイルの中身を取り出し、その後で

$xml = array(
    array(
        'name' => 'ピヨ太',
        'position' => '社長',
        'age' => '30代のおっさん',
    ),
    array(
        'name' => 'ピヨ子',
        'position' => '営業部長',
        'age' => '永遠の美少女',
    )
);


の形に整形してくれているのです。

image piyo2

一言でまとめるよ

まぁ「XMLパーサ」って単語が出てきたら「XMLファイルの中身を使いやすい形に整形してくれるプログラムなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク