c# - HtmlAgilityPack SelectNodes 语法

标签 c# html .net xpath html-agility-pack

我有以下 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-&amp;-Design-jobs.html" rel="nofollow">Software Development &amp; Design</a></li><li><a href="/q-Software-jobs.html" rel="nofollow">Software</a></li><li><a href="/q-Custom-Software-&amp;-Technical-Consulting-jobs.html" rel="nofollow">Custom Software &amp; 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&amp;h=085df2ca" target="_blank">Company website</a></li></ul></td>
    </tr>
</tbody>

我希望能够将 metadata_content 值(例如“1750 万美元”)加载到一个 var 中,其中 metadata_name 等于一个值(例如:“Revenue”)。

几个小时以来,我一直在尝试使用这样的代码组合......

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
}

请注意,要获取元素的文本,您应该使用 found.InnerText,而不是 found.InnerHtml,除非您特别需要它的 HTML 内容。

关于c# - HtmlAgilityPack SelectNodes 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506725/

相关文章:

c# - ASP.NET WebApi JSON 响应和带有外键的实体

php - IE7 上的菜单损坏 - wordpress 网站

javascript - JQuery Mobile,通过 window.location 重定向可防止 pageshow 事件

c# - 反射 - 获取 lambda 表达式中的方法调用列表

c# - 我如何设置带有低音的歌曲/文件结尾的回调?

c# - 在 Oracle 的 BLOB 字段中保存和检索图像?

c# - 计算给定 X Y 系列的局部最大值/最小值

javascript - jQuery 中的选择器 ^ - 如何全部?

asp.net - 缺少 IIS 10.0 上的 asp.net 功能

c# - 对方法返回值使用 C# 丢弃运算符是否有意义?