1

HTML ページを解析し、そこから特定の値を取得したいと考えています。Linq または C# での文字列解析を使用してこれを行うにはどうすればよいですか?

------------- その他の HTML ----------

     <span class="date">
        04.09.2012
    </span>
    <table cellspacing="0"><tr><th scope="row">1 EUR</th><td><span>**4,4907**</span></td><td><span class="rise">+0,0009</span></td><td><span class="rise">+0,02%</span></td></tr><tr><th scope="row">1 USD</th><td><span>3,5635</span></td><td><span class="fall">-0,0093</span></td><td><span class="fall">-0,26%</span></td></tr></table>

------------- その他の HTML ----------

太字で 4,4907 という値を取得することに興味があります。

これを達成する方法はありますか?

ありがとう!

4

3 に答える 3

4

そのビットだけが必要な場合は、正規表現を使用してください。(ただし、より複雑な HTML を解析するために正規表現を使用しないでください。 )

<td><span>4,4907</span></td>

正規表現によって最も便利に一致します

<td><span>([0-9,]+)</span></td> 

たとえば、C# で正規表現を使用する方法については、すぐに Google で検索されたこのページを参照してください。

于 2012-09-05T07:59:30.900 に答える
1

HTML を解析しようとするときは注意してください。

XDocument に (XML として) ロードするのが明白な方法だと思いますが、HTML はしばしばあいまいであるか、構文エラーが含まれているため、これは失敗するはずです。

スタック オーバーフローに関する人々は、代わりに http://htmlagilitypack.codeplex.com/を使用することを提案しています。これは、html の解析に優れていると言われています。次に、xpath を使用してドキュメントにさまざまなコンテンツを問い合わせることができます。

于 2012-09-05T08:02:59.947 に答える
0

次の方法で、C# で正規表現を試すことができます。

http://www.c-sharpcorner.com/UploadFile/prasad_1/RegExpPSD12062005021717AM/RegExpPSD.aspx

"< span > * " と " * </ span >"の間の文字列を検索します。

または、「jericho」などの HTML パーサーを使用して、HTML タグをナビゲートして値に到達することもできます。

于 2012-09-05T07:59:33.940 に答える