私は次のHTMLを持っています:
<tbody>
<tr>
<td class="metadata_name">Headquarters</td>
<td class="metadata_content">Princeton New Jersey, United States</td>
</tr>
<tr>
<td class="metadata_name">Industry</td>
<td class="metadata_content"><ul><li><a href="/q-Engineering-Software-jobs.html" rel="nofollow">Engineering Software</a></li><li><a href="/q-Software-Development-&-Design-jobs.html" rel="nofollow">Software Development & Design</a></li><li><a href="/q-Software-jobs.html" rel="nofollow">Software</a></li><li><a href="/q-Custom-Software-&-Technical-Consulting-jobs.html" rel="nofollow">Custom Software & Technical Consulting</a></li></ul></td>
</tr>
<tr>
<td class="metadata_name">Revenue</td>
<td class="metadata_content">$17.5 Million</td>
</tr>
<tr>
<td class="metadata_name">Employees</td>
<td class="metadata_content">201 to 500</td>
</tr>
<tr>
<td class="metadata_name">Links</td>
<td class="metadata_content"><ul><li><a href="/url?q=http%3A%2F%2Fwww.site.com&h=085df2ca" target="_blank">Company website</a></li></ul></td>
</tr>
</tbody>
私は、metadata_contentの値(ex "$ 17.5 Million")を、metadata_nameが=であるvarに(例えば、 "Revenue")varをロードできるようにします。
私はこのようなコードの組み合わせを数時間使ってみました...
orgHtml.DocumentNode.SelectNodes("//td[@class='metadata_name']")[0].InnerHtml;
しかし、私は正しい組み合わせを得ることはできません。有用なSelectNodes構文があれば、それは私にそれを感謝する解決策を得るでしょう。
あなたが探しているのはこれです:
var found = orgHtml.DocumentNode.SelectSingleNode(
"//tr[td[@class = 'metadata_name'] = 'Revenue']/td[@class = 'metadata_content']");
if (found != null)
{
string html = found.InnerHtml;
// use html
}
要素のテキストを取得するには、HTMLコンテンツが特に必要な場合をfound.InnerHtml
、 found.InnerText
を使用する必要があります。