ASP.NET XML Web サービスによる HTML 解析

現在、Web では膨大な量の情報が公開されています。しかし、このデータの大半はユーザーがブラウザで参照するためだけに作成されています。ASP.NET を使用して、HTML 解析ソリューションを提供する Web サービスを作成することで、この状況を変えることができます。このソリューションを利用して、開発者はリモート HTML ページのコンテンツを解析し、結果のデータをプログラムで公開できます。Web サイト コンテンツの発行者から許可を得れば、コンテンツのレイアウトが変更されないことを前提として、HTML 解析を使用してクライアントが利用できる Web サービスを公開できます。HTML 解析の詳細については、「方法 : Web ページのコンテンツを解析する Web サービスを作成する」を参照してください。

Web ページのコンテンツを解析する Web サービスの構築には、一般的な Web サービスを構築する場合とは異なるモデルを使用します。HTML ページを解析する Web サービスは、サービスの説明を作成することで実装されます。サービスの説明とは、Web サービス記述言語 (WSDL: Web Services Description Language) で記述された XML ドキュメントです。サービスの説明には、入力パラメータと、解析された HTML ページから返すデータの両方を指定する XML 要素を追加します。

解析対象の HTML ページにパラメータを渡すことができ、返される HTML ページのコンテンツがそれに応じて変わる場合には、入力パラメータを Web サーバーに渡すことができます。

解析後の HTML ページから返すデータを指定する部分は、多くの実装を伴う部分です。HTML コンテンツを解析する方法を指示する部分だからです。これらの XML 要素を追加し、HTML ページを解析する Web サービスを作成するには、WSDL で記述された XML ドキュメントのレイアウトに関する知識が必要です。WSDL の詳細については、W3C の Web サイト (http://www.w3.org/TR/wsdl) の WSDL 仕様を参照してください。

解析された HTML ページから返すデータは、サービスの説明の中で、一連の XML 要素で表します。この中では、特定のデータを解析する正規表現と、各データの名前を指定します。実際の .NET Framework の正規表現は、match XML 要素にあります。正規表現には広範なパターン一致の表記法があり、大量のテキストをすばやく解析して特定の文字パターンを検索できます。.NET Framework の正規表現構文の詳細については、「.NET Framework Regular Expressions」を参照してください。

<match> 要素

match 要素は次の属性を使用して指定できます。

属性 説明

name

返されたデータを表すクラス名またはプロパティ名。match XML 要素に match 子要素がある場合、Wsdl.exe ツールで生成されたプロキシ クラスによって name 属性がクラスに関連付けられます。match 子要素は、そのクラスのプロパティに割り当てられます。

Pattern

データを取得するために使用する正規表現パターン。.NET Framework の正規表現構文の詳細については、「.NET Framework Regular Expressions」を参照してください。

ignoreCase

大文字と小文字を区別して正規表現を実行するかどうかを指定します。既定では、大文字と小文字が区別されます。

Repeats

HTML ページで正規表現に一致するデータが複数ある場合に、正規表現から返される値の数を指定します。1 を指定すると、最初の一致だけを返します。-1 を指定すると、すべての一致を返します。-1 という値は、正規表現の「*」と同じです。既定値は -1 です。

Group

関連する一致のグループ化を指定します。

Capture

グループ内の一致のインデックスを指定します。

type

Wsdl.exe を使用して生成されるプロキシ クラスは、match 子要素を含む match に対して返されるクラスの名前として type 属性を使用します。既定では、Wsdl.exe によって生成されるプロキシ クラスは、返されたクラスの名前を name 属性で指定された名前に設定します。

関連項目

タスク

方法 : Web ページのコンテンツを解析する Web サービスを作成する

参照

MatchAttribute Class
Web サービス記述言語ツール (Wsdl.exe)

その他の技術情報

.NET Framework Regular Expressions
ASP.NET を使用した XML Web サービス

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.