崖っぷちの男

たぶん技術っぽいネタ。ブログ名が決められない

FlexでHTMLの要素をXPathでとりだしたいな(概要)

実は毎日更新しようと思ってたんですが、飲み会があるときついっすね。
だもんで今日はちょっとだけ書きます。

つい最近 AdobeFlex を勉強さしてもらえることになって勉強してます。

で普段 Python とかで Web から情報をとってくることばかりやっているので、
Flex でもやってみよう、ということで調べてみました。

とりあえず使えるライブラリを検索してみたので、それだけ書いときます。

「Jcode」で文字コードの変換

WEB2MEMO =PHP、JavaScript、CSS、DB、Java、AIR、Flex、Ruby、Rails等のメモ= ActionScript用日本語文字コード変換ライブラリ『Jcode』(ダウンロード)


日本語のサイトからデータをとってくるとなると、UTF-8 ばかりとも限らないので
文字コードの変換が必要そう、ってことで使ってみました。
Shift_JIS のバイナリデータを UTF-8 にしてくれたりします。

Flexソースコード自体の文字コードを変える、っていう手もあるらしいのですが、
何か UTF-8 で書きたいというこだわり的なものがあるので…

「AS3 HTML Parser」で HTML をパース

groe.org AS3 Html Parser


本当にここ数日で勉強し始めたんで 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 です。。