XML関連の命令
ひまわりでは、簡単なXML関連の命令が用意されています。
『簡単な』とつけたのは、実際には、XML規格に忠実に実装されているのではなく、読み込みできる文字コードは、シフトJISのみ、XMLの構造を定義したDTD部分は、無視してしまうという、その筋から見たら使えない!と言われそうな、なんちゃってXMLなのです。
しかし、厳格な規格に沿ってない分、手軽に扱えるように設計されています。
XMLの基本
XMLの基本は、『<タグ名> データ </タグ名>』 という形式が基本です。
ホームページを記述する言語HTMLとほとんど同じ構造です。
試しに簡単なXMLを書いてみます。
XML=『
<データ>
<名前>クジラ飛行机</名前>
<年齢>20</年齢>
<仕事>雑用係</仕事>
</データ>』
XMLの、『データ!年齢』を、XMLテキストデータ取得して、表示。 |
これを実行すると、年齢の20という値が得られます。
そして、XMLで素晴らしい点は、タグを重ねて書くことにより、ツリー構造のデータを表現できることです。
たとえば、ゲームを作ったとします。ゲームには、キャラクターがたくさんいるときは、以下のようにデータを入れ子にすることができます。
XML=『
<セーブデータ>
<魔法使い>
<名前>レナ</名前>
<レベル>16</レベル>
</魔法使い>
</セーブデータ>
』
' ツリー部品にXMLの階層を表示
XMLツリーを、作る。
その、サイズは、(0,0,300,300)
XMLを、XMLパス形式で取得。
その、アイテムは、それ。
|
ひまわりで、この入れ子(階層構造)になったXMLデータを取得するには、以下のように¥で区切ってパスを書いて、『XMLテキストデータ取得』命令を使います。
XML=『
<セーブデータ>
<魔法使い>
<名前>レナ</名前>
<レベル>16</レベル>
</魔法使い>
</セーブデータ>
』
'データを得る
XMLの、『セーブデータ\魔法使い\名前』を、
XMLテキストデータ取得して、表示。
|
HTML解析へ流用
HTMLとXMLは、非常によく似ています。というか、ほとんど同じです。
それならば、HTMLの解析にも、XML命令を使うことができます。
たとえば、今読んでいるこのHTMLマニュアルを解析して、ツリー部品に表示してみます。
ランタイムのパス&『doc\index.htm』を、開く。
XMLパス形式で取得。
解析ツリーを、作る。
その、サイズは、(0,0,300,300)
その、アイテムは、それ。
|
ただし、XMLでは、必ず<タグ>と</タグ>が対応していることというルールがありますので、それほど正確には解析できませんが、<HTML>要素の中に、<HEAD>と、<BODY>があり・・・と、大体の構造を知ることが出来ます。
そこで、HTMLのページタイトルを取得するには、以下のようにします。
ランタイムのパス&『doc\index.htm』を、開く。
『html\head\title』を、XMLテキストデータ取得。
表示。
|
マニュアルのインデックスページですので、『日本語プログラム言語「ひまわり」』と表示されたと思います。
それから、HTMLページの<H2>要素は、だいたいにして小見出しを表しています。
そこで、
ランタイムのパス&『doc\hajimete\repeat.htm』を、開く。
『html\body\h2』を、XMLテキストデータ取得。
表示 |
のように書くと、小見出しを抜き出すことが出来ます。
戻る