HTML ドキュメントで、最初の 2 行にテキストが含まれる 3 列を含むテーブルを見つけようとしています。
次のクエリを使用して実験しました。これは、テーブルの最初の 2 行の最初の列にテキストが含まれているノードを返したいと考えています。
string xpath = @"//table//table[//tr[1]//td[1]//*[contains(text(), *)] and //tr[2]//td[1]//*[contains(text(), *)]]";
HtmlNode temp = doc.DocumentNode.SelectSingleNode(xpath);
うまくいかないもん。
これは、私が一致させようとしているテーブルであるサンプル HTML です。
<table width="100%" cellpadding="0" border="0">
<tbody>
<tr>
<td width="27%" valign="center"><b><font size="1" face="Helvetica">SOME TEXT<br></font></b></td>
<td width="1%"></td>
<td width="9%" valign="center"><font size="1" face="Helvetica">SOME TEXT<br></font></td>
<td width="1%"></td>
<td width="25%" valign="center"><font size="1" face="Helvetica">SOME TEXT<br></font></td>
<td width="37%"></td>
</tr>
<tr>
<td valign="center"><font size="1" face="Helvetica">SOME TEXT<br></font></td>
<td></td>
<td valign="center"><font size="1" face="Helvetica">1<br></font></td>
<td></td>
<td valign="center"><font size="1" face="Helvetica">SOME TEXT<br></font></td>
<td></td>
</tr>
</tbody>
</table>
列 1、3、5 の最初の 2 行にテキストがあることがわかります。それが私が一致させようとしているものです。