.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」 |
@IT Special
- PR -TechTargetジャパン
- 徹底予習! Windows 10のユニバーサルアプリ開発 (2015/4/28)
Windows 10で登場するユニバーサルアプリとはどんなものか。その特徴とプログラミングの実際を徹底的に紹介する - Windows 10/Visual Studio 2015への期待と課題 (2015/4/24)
2015年の技術トレンドと業務アプリ開発について2015年3月に実施したアンケートの調査結果を紹介する - Windows 10と同じようにGridViewをスクロールさせる (2015/4/22)
GridViewコントロールはWindows 8.1/10でデフォルトの挙動が異なる。本稿では、この挙動をWindows 10に合わせるための方法を解説する - 無料でプログラミングが学べる三大動画学習サイト (2015/4/21)
プログラミングを学べる動画サイトを紹介。それぞれに特色があるので、自分に合ったサイトを見つけて、スキルや知識を向上させよう
|
|
キャリアアップ
- - PR -
イベントカレンダー
ホワイトペーパー(TechTargetジャパン)
- - PR -