0

Web 応答を取得するコードがいくつかあります。その応答を受け取り、その CSS クラス (class="data") を使用してテーブルを検索するにはどうすればよいですか? テーブルを取得したら、特定のフィールド値を抽出する必要があります。たとえば、以下のサンプル マークアップでは、フィールド #3 とフィールド #5 の値が必要なので、それぞれ「85」と「1」です。

<table width="570" border="0" cellpadding="1" cellspacing="2" class="data">
  <tr>
    <td width="158"><strong>Field #1:</strong></td>
    <td  width="99">1</td>
    <td  width="119"><strong>Field #2:</strong></td>
    <td  width="176">110</td>
  </tr>
  <tr>
    <td width="158"><strong>Field #3:</strong></td>
    <td  width="99">85</td>
    <td  width="119"><strong>Field #4:</strong></td>
    <td  width="176">-259.34</td>
  </tr>
  <tr>
    <td width="158"><strong>Field #5:</strong></td>
    <td  width="99">1</td>
    <td  width="119"><strong>Field #6:</strong></td>
    <td  width="176">110</td>
  </tr>
  <tr>
    <td width="158"><strong>Field #7:</strong></td>
    <td  width="99">12</td>
    <td  width="119"><strong>Field #8:</strong></td>
    <td  width="176">123.23</td>
  </tr>
</table>
4

2 に答える 2

2

HTML Agility Packを使用して、 HTMLを解析します。最も簡単な方法で実行したい場合は、ベータ版を入手してください(LINQ をサポートしています)。

于 2012-10-02T19:11:05.430 に答える
0

Randolf が示唆するように、HTML Agility Pack を使用することは適切なオプションです。

ただし、HTML の形式を制御できる場合は、文字列の解析を行って目的の値を抽出することもできます。

HTML 全体を文字列としてダウンロードし、文字列 " <table" の後に文字列 "class=\"data\"" を検索するのは、ほとんど簡単です。次に、同様の文字列操作を行うことで、目的の値を簡単に抽出できます。

これを行うべきだと言っているわけではありません。結果として得られるコードは、HTML Agility Pack を使用したコードよりも読みにくく、維持するのが難しくなりますが、外部への依存が軽減され、コードのパフォーマンスが大幅に向上する可能性があります。

私が作成した WP7 アプリでは、HTML Agility Pack を使用して HTML を解析し、いくつかの値を抽出しました。これはうまくいきましたが、かなり遅かったです。文字列解析方式に切り替えると、コードが何倍も高速になり、まったく同じ結果が返されました。

于 2012-10-02T19:24:09.740 に答える