1

ドキュメントの 2 番目のテーブルの特定の場所から値を取得するにはどうすればよいですか。以下の HTML ドキュメントの 2 番目のセルと 3 番目の列の値が必要です。これを行うにはどうすればよいですか。

<html>
<head>
<title>Tables</title>
</head>
<body>
<table border="1">
  <tr>
    <th>Room</th>
    <th>Location</th>
  </tr>
  <tr>
    <td>Paint</td>
    <td>A4</td>
  </tr>
  <tr>
    <td>Stock</td>
    <td>B3</td>
  </tr>
  <tr>
    <td>Assy</td>
    <td>N9</td>
  </tr>
</table>
<p></p>
<table border="1">
  <tr>
    <th>Product</th>
    <th>Mat'l</th>
    <th>Weight</th>
    <th>Size</th>
  </tr>
  <tr>
    <td>Cover</td>
    <td>Plastic</td>
    <td>4</td>
    <td>16</td>
  </tr>
  <tr>
    <td>Retainer</td>
    <td>Steel</td>
    <td>12</td>
    <td>8</td>
  </tr>
  <tr>
    <td>Pin</td>
    <td>Bronze</td>
    <td>18</td>
    <td>7</td>
  </tr>
</table>
<p></p>
<table border="1">
  <tr>
    <th>Process</th>
    <th>Location</th>
    <th>Number</th>
  </tr>
  <tr>
    <td>Trim</td>
    <td>S2</td>
    <td>8</td>
  </tr>
  <tr>
    <td>Finish</td>
    <td>D2</td>
    <td>3</td>
  </tr>
</table>
</body>
</html>

ありがとう!

また...初心者を助けてください!!! Html-Agility-Pack (HAP) の構文を理解するのに役立つリソースを教えてください。私は HAP 用の CHM ファイルを持っています - 私はそれを使用しようとしましたし、HAP 用に VS のオブジェクト ブラウザを使用しようとしましたが、現時点ではわかりにくすぎます。

4

1 に答える 1

2

Html Agility Pack には、解析された HTML ノードで.NET XPATH 構文に従う XPATH エバリュエーターが装備されています。このライブラリで使用される XPATH 式では、元の HTML ソースとは別に、要素と属性の名前を小文字にする必要があることに注意してください。

したがって、あなたの場合、次のような式で 3 列目、2 行目、2 番目のテーブルのセルを取得できます。

HtmlDocument doc = new HtmlDocument();
doc.Load(YouTestHtmlFilePath);

HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[2]/tr[2]/td[3]");
Console.WriteLine(node.InnerText); // will output "4"

//tableルートから再帰的に TABLE 要素を取得することを意味します。[2]2番目のテーブルを取ることを意味します。

/trこの現在のテーブルから任意の TR 要素を取得することを意味します。[2]は 2 行目を取得することを意味します。

/tdこの現在の行から TD 要素を取得することを意味します。[3]3番目のセルを取ることを意味します。

優れた XPATH チュートリアルをここで見つけることができます: XPath チュートリアル

于 2013-05-10T07:19:23.303 に答える