FlexでHTMLの要素をXPathでとりだしたいな(概要)
実は毎日更新しようと思ってたんですが、飲み会があるときついっすね。
だもんで今日はちょっとだけ書きます。
つい最近 Adobe の Flex を勉強さしてもらえることになって勉強してます。
で普段 Python とかで Web から情報をとってくることばかりやっているので、
Flex でもやってみよう、ということで調べてみました。
とりあえず使えるライブラリを検索してみたので、それだけ書いときます。
「Jcode」で文字コードの変換
日本語のサイトからデータをとってくるとなると、UTF-8 ばかりとも限らないので
文字コードの変換が必要そう、ってことで使ってみました。
Shift_JIS のバイナリデータを UTF-8 にしてくれたりします。
Flex のソースコード自体の文字コードを変える、っていう手もあるらしいのですが、
何か UTF-8 で書きたいというこだわり的なものがあるので…
「AS3 HTML Parser」で HTML をパース
本当にここ数日で勉強し始めたんで swc ファイルの使い方をよく知らなかったんですが、
libs フォルダに入れときゃいいんですね。
それはともかく、このライブラリは XML っぽくない HTML を XML っぽくしてくれます。
ソースは SVN リポジトリにあります。
SourceForge.net Repository - [as3htmlparser] Index of /HtmlParser/src/as/org/groe/html
でこれでパースするんですが、結果出てくる Element オブジェクトをどんどん処理してくのではなくて、
そのまま toHtmlString() ですぐさま HTML 文字列に戻します。
すると AS 標準(?) の XML() 関数につっこんだ時に XML として解釈してくれて、
XMLList オブジェクトを返してくれます。
これを使わないと HTML の書き方によってはパースエラーになるため、こんなことをしています。
「xpath-as3」でXPath
xpath-as3 - An XPath implementation for ActionScript 3.0 - Google Project Hosting
あとはこれで XPath を書いて必要な部分を取り出します。
ここからの処理はまだ色々試してないですが、Wiki を見ればたぶん大丈夫そうです。
GettingStarted - xpath-as3 - An XPath implementation for ActionScript 3.0 - Google Project Hosting
という訳で URL だけでおしまい。
ちなみに XPath を知ったきっかけは今は亡き Mac OS X の Sherlock です。。