首页 > 解决方案 > 在 C# 中具有相同类名的不同 HTML 节点

问题描述

HTMLAgilityPack用来解析网站的 HTML。

问题是:There are two nodes with class "price"。我可以通过检查来区分它们DOM。所以上面 3 级,我想要的价格有 class 的父节点product-top,而我不想要的节点有 class advertisement3 以上的级别。

像这样:

<div class="product-top">
    <div class="xy">
        <div class="zz">
            <div class="price">THIS IS WHAT I WANT>
close all

<div class="advertisement">
    <div class="xy2">
        <div class="zz2">
            <div class="price">THIS IS WHAT I DO NOT WANT>
close all
            

如何使用HTMLAgilityPackC# 访问第一个示例中的节点?

提前致谢

标签: c#htmlhtml-agility-pack

解决方案


您可以使用以下 XPath 表达式:

//div[@class='product-top']//div[@class='price']

或者,如果您特别想要以上 3 个级别:

//div[@class='product-top']/div/div/div[@class='price']

推荐阅读