2006年04月09日(日)更新 |
■SAXで要素内容を取得
たけち: 前回はSAXを使って要素の属性を取得したね。 さらら: えぇ。startElementメソッドで属性が渡されてくるんだったわね たけち: 今回は、要素の内容を取得するための処理を追加してみようね。そのためにはcharactersメソッドを使うんだよ。 さらら: はい。 |
■サンプルXMLデータ
たけち: サンプルXMLデータは前回と同じものを使うね。 さらら: はい。それで、プログラムで要素内容を表示してみるのね。 たけち: そうだよ。 |
サンプルXMLデータ sample.xml |
---|
<?xml version="1.0" encoding="UTF-8" ?> |
■要素内容を取得する方法: charactersメソッド
たけち: まずは、SAXで要素内容を取得する方法をみておこうね。 さらら: はい。 |
たけち: 最初のパラメタの ch に読み込んだXMLファイルの文字データが入っていて二番目のパラメタ start に該当する要素内容の開始位置が、そして文字数が三番目のパラメタ length に入っているんだよね。 さらら: そうなんだ。 |
■SimpleSAXHandlerにcharactersメソッドを追加
さらら: で、要素内容を取得するのに、SimpleSAXHandlerにcharactersメソッドを追加するのね。 たけち: そうそう。じゃ、簡単な例を書いて実行してみよう。 さらら: えぇ、お願い。。 たけち: じゃ、前回までに作成したSimpleSAXHandlerに次のようなcharactersメソッドを追加してみよう。 |
SimpleSAXHandler.javaのcharactersメソッド (要素内容の取得・表示) |
---|
/* |
■変更したプログラムでサンプルXMLデータの読込みを実行
さらら: あら、このサンプルだとそのまんま表示するだけなのね。 たけち: そう。じゃ、実際にEclipseを使って実行してみるね。 さらら: えぇ。 |
たけち: poet要素の内容である「持統天皇」という文字列と各poem要素の内容が、ちゃんと表示されているよね。 さらら: そうね。わかったわ。 |
たけち: このほかにもSAXを利用して、XMLデータの行数を取得したり、名前空間を取得したりすることができるけど、とりあえず今回で終わりにするね。。 さらら: はい。だいたいのことが分かってうれしいわ。 たけち: じゃ、SAXはここまで。このあとは、DOMについて学んでみようね。 さらら: あっ、そうだね。たのしみ〜。 →SAXは、とりあえずこれで終わりです。・・・ (^ ^; |