絶対URLからSPWebを取得する

投稿者: | 2009年9月22日

絶対URLからSPWebを取得する方法です。

SPWebを取得するには、まずSPSiteを取得する必要があります。
SPSiteの取得は、別の記事にも書いた通り、SPSiteのコンストラクタの引数に、絶対URLを渡して取得します。
その後、続けてOpenWebメソッドを引数なしで呼び出すことで、SPWebを取得できます。
以下のコードでは、testというサブサイトを指定しています。
このコードの結果は、testサブサイトが取得できます。  


SPSiteと同様、サイトが特定できれば、後半のURLは存在しないコンテンツを指していても問題ありません。
以下のコードでは、test2という存在しないサブサイトを指しています。
このコードの結果は、http://test.co.jpのトップサイトが取得できます。 


このやり方の場合、SPSiteが取得できないことはあっても、SPWebが取得できないことはありません。
SPSiteが取得できていれば、存在しないサブサイト名を指定していても、OpenWebメソッドによりSPSiteのRootWebが取得できます。

逆に言うと、URLの間違いに気づかず、関係ないSPWebを使って処理をしてしまうことがあるので、注意が必要です。