<case> 要素
多数の候補の中から最初に検出された正常な一致を処理した後で、パターン一致を停止できるようにします。
<configuration>
<system.web>
<browserCaps>
<filter>
** <case>**
<case match="[regex expression]" with="[regex expression]">[assignments, filter elements and case elements]</case>
必須属性
属性 | 説明 |
---|---|
match | with 属性に対して照合される .NET Framework 正規表現。この属性を省略すると、正常な一致が検出されたと見なされます。 |
with | 検索対象の .NET Framework 正規表現または文字列。この属性を省略すると、<use> 要素で指定された文字列が使用されます。 |
例
任意のバージョンの Internet Explorer に対する User-Agent HTTP ヘッダーを解析する例を次に示します (User-Agent 文字列の形式がほとんど変更されていない場合に限ります)。
この例では、.NET Framework の正規表現と、部分式をキャプチャできる正規表現の機能を利用して、バージョン番号を User-Agent 文字列から browserCaps オブジェクトに直接移動しています。
このファイルでは、Microsoft Internet Information Services (IIS) の browscap.ini ファイルと同様の代入ステートメントの形式で、名前と値のペアを指定します。たとえば、"browser=IE" という行は、browser フィールドの値を "IE" という文字列に設定します。
<configuration>
<browserCaps>
<result type="System.Web.HttpBrowserCapabilities, System.Web"/>
<use var="HTTP_USER_AGENT"/>
browser=Unknown
version=0.0
majorversion=0
minorversion=0
frames=false
tables=false
cookies=false
backgroundsounds=false
<filter>
<case match="^Mozilla[^(]*\(compatible; MSIE
(?'ver'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))
(?'extra'.*)">
browser=IE
version=${ver}
majorver=${major}
minorver=${minor}
<case match="^2\." with="%{version}">
tables=true
cookies=true
backgroundsounds=true
<case match="2\.5b" with="%{version}">
beta=true
</case>
</case>
</case>
</filter>
</browsercaps>
</configuration>
解説
すべての <filter> 要素と <case> 要素は、代入式および他の <filter> 要素と <case> 要素を格納できます。<case> グループと <filter> グループには、相違点があります。<filter> グループが評価された後では、そのグループに続くステートメントで実行が継続されます。しかし、<case> グループの正常な一致が検出され評価された後では、外側のグループの末尾までスキップして実行が継続されます。
必要条件
格納されている場所 : <system.web>
Web プラットフォーム : IIS 5.0、IIS 5.1、IIS 6.0
構成ファイル : Machine.config、Web.config
構成セクション ハンドラ : System.Web.Configuration.HttpCapabilitiesSectionHandler
参照
<browserCaps> 要素 | <filter> 要素 | ASP.NET の構成 | ASP.NET 設定スキーマ