|
.NET TIPS 相対URLを絶対URLに変換するには?デジタルアドバンテージ2003/08/02 |
![]() |
|
|
|
HTMLを解析して、それに含まれるリンクを抽出するような場合、相対URLを絶対URLに変換する処理が必要となることがある。
例えば、@ITのサイトのトップページ(http://www.atmarkit.co.jp/index.html)に次のようなリンクが含まれているとしよう。
<a href="/fdotnet/index.html">Insider.NETへ</a>
ここでリンク先のURLである「/fdotnet/index.html」はトップページからの相対URLであり、その絶対URLは「http://www.atmarkit.co.jp/fdotnet/index.html」となる。
相対URLがスラッシュから始まっている場合には、文字列の操作により絶対URLを作成するのは容易だが、相対URLは「fdotnet/index.html」や「../index.html」といった記述も可能だ。このような場合には絶対URLを作成するのは少々めんどうな作業となる。
Uriクラス(System名前空間)を使用すれば、こういった相対URLを絶対URLに簡単に変換することができる。UriクラスはURI(Uniform Resource Identifier)を表現するためのものだ(リソースの位置を示すURLはURIの1つの形式である)。
変換にはまず、ベースとなる絶対URLに対するUriクラスを作成する。
Uri baseURL = new Uri("http://www.atmarkit.co.jp/index.html");
次に2つのパラメータをとるバージョンのコンストラクタを使用して、別のUriオブジェクトを作成する。パラメータには、今作成したベースURLを示すUriオブジェクトと、相対URLとなる文字列を指定する。
URi destURL = new Uri(baseURL, "/fdotnet/index.html");
このコンストラクタでは、ベースURLと相対URLが組み合わされたURLを基にしてUriオブジェクトが作成される。Uriオブジェクトからは、AbsoluteUriプロパティにより、その絶対URLを得ることができる。
次のサンプル・プログラムはいくつかの書式の相対URLを絶対URLに変換している例を示すものだ。
|
|
| いくつかの書式の相対URLを絶対URLに変換するC#のサンプル・プログラム(uri.cs) | |
サンプル・プログラム中の最後の例からも分かるように、コンストラクタの第2パラメータに絶対URLを指定した場合には、そのURLがAbsoluteUriプロパティに設定される。このためHTMLに含まれるリンク(URL)をすべて絶対URLに変換するような場合には、そのリンクが相対か絶対かを区別せずに処理することができる。![]()
| カテゴリ:クラス・ライブラリ 処理対象:URL 使用ライブラリ:Uriクラス(System名前空間) |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


