このページの本文へ

前へ 1 2 3 4 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

古籏一浩のJavaScriptラボ ― 第22回

JSでWeb制作を自動化するAdobe Bridge活用入門

2009年12月07日 13時00分更新

文● 古籏一浩


HTMLファイルからページタイトルを抽出して表示

 HTMLファイルの読み込みができたら、今度は少し解析してみましょう。ここでは、ページタイトル (<title>〜</title>)を抽出してアラートダイアログに表示します。

 取得したファイルを読み込むにはnew File()のパラメータにファイルのパスを指定します。new File()によりファイルオブジェクトが生成されるので、open()メソッドを使ってファイルをオープンします。引数には、読み込みなのか書き込みなのかを文字で指定します。今回は読み込みのみなので"r"を指定します。"w"だと書き込みになります。

 ファイルからすべてのデータを読み込むにはread()メソッドを使います。一行だけ読み込ませたいのであればreadln()を使います。読み込まれたデータはテキストになっていますので、JavaScriptのStringオブジェクトのプロパティやメソッドを使って処理できます。ここでは単純にシリアルサーチのindexOf()を使ってタイトル文字を抽出します。

 実際のプログラムはサンプル05です。ただ、indexOf()でHTMLタグの内容を抽出するのはあまりよい方法とは言えません。文法的に問題のないXHTMLであれば、new XML()を使ってXMLデータとして処理したほうがよいでしょう。

 そこで、次回はASCII.jpで配信しているRSS (XML) を読み込んで必要な情報だけを抽出する方法について解説します。どうぞお楽しみに。

実行結果
ASCII.jpのページタイトルがアラートダイアログに表示されます

●サンプル05


#target "Bridge"
// Http, Ftpが使えるようにする
if ( !ExternalObject.webaccesslib ) {
    ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
// 取得先のURLと保存先のパスを指定
var url = "http://ascii.jp/web/";
var filepath = "~/asc.html";
// Webサーバーへ接続
var http = new HttpConnection(url);
http.response = new File(filepath);   // 保存先を指定
http.execute();   // サーバーへリクエスト
http.response.close();  // 取得したら終了
// 取得したHTMLファイルを保存
var fileObj = new File(filepath);
// ASCII.jp/WebProfessionalページのタイトルをアラートダイアログに表示
if (fileObj.open("r") == true){
    var txt = fileObj.read();
    var startPtr = txt.indexOf("<title") + 7;
    var endPtr = txt.indexOf("</title>", 7);
    var titleStr = txt.substring(startPtr, endPtr);
    alert(titleStr);
}


前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

Microsoft Windows 7 Home Premium 通常版 Service Pack 1 適用済み

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

83人が購入

BenQ 24型 LCDワイドモニタ XL2420T

BenQ 24型 LCDワイドモニタ XL2420T

ベンキュージャパン

37,238円〜

3人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

20人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

6人が購入

Amazon.co.jp