私はhtmlagilitypackでc#を使用しています。探しているテーブルに行が含まれていない場合を除き、すべて正常に動作します。私はページ上の最初のテーブルからデータだけを読み込もうとしています。問題は、最初のテーブルに行が含まれていない場合、何らかの理由でhtmlagilitypackが2番目のテーブルにジャンプするように見えることです。HTMLAgilityPack - 空白のテーブルを検出していますか?
私は読んしようとしているHTMLは次のようになります。
<table class='stats'>
<tr>
<td colspan='2'>This is the 1st table</td>
<tr>
<td>Column A</td>
<td>Column B</td>
</tr>
<tr>
<td>Value A</td>
<td>Value B</td>
</tr>
</table>
<table class='stats'>
<tr>
<td colspan='2'>This is the 2nd table</td>
<tr>
<td>Column 1</td>
<td>Column 2</td>
</tr>
<tr>
<td>Value 111</td>
<td>Value 222</td>
</tr>
</table>
私は次の行使用して第一の表の値を取得:私はどのようにデータを確実ん
foreach (HtmlNode node in root.SelectNodes("//table[@class='stats']/tr[position() > 2]/td"))
を1回目のテーブルから掴んだだけですか?
ありがとうございました。
はええ、私は私の問題が原因私が読んでいるテーブルは、それらに関連IDを持っていないという事実にあると思われると思います。 – goalie35
"[@ class = 'stats']/tr [position()> 2]"と指定すると、いくつかのテストを実行しようとしましたが、各テーブルの2行目以降のすべての "stats"クラステーブルのすべての行が返されます。だから私の元の例は2行(値A |値B ...と値111 |値222)を返します。テーブル1からの行がない場合は、単純に値111 |値222を返します。テーブルがどのテーブルから来たかは気にしません。 @Chris Taylor – goalie35
@ goalie35なぜ私はdownvotedですか?私はあなたのコメントがChirs Taylorを対象としていたので、間違った答えにあなたのコメントを投稿したと思います。 –