【问题标题】:Html agility pack AddressingHtml 敏捷包寻址
【发布时间】:2020-09-10 14:22:22
【问题描述】:

在这个 Html 中

<div class="contacts-list">
    <h4 class="title">Contact</h4>
                <div class="contact-phone">
            <span class="icon"><i class="ee-phone"></i></span><span class="type">تلفن</span>
            <span class="contact-data">
                                        <a dir='auto' href='tel:05138946697'>05138946697</a>                                    </span>
        </div>

我必须提取“a”标签的值,但我必须确保它位于带有“contact-phone”类的“div”标签内。

我真的不明白我该怎么做,有人可以帮助我吗?

【问题讨论】:

  • 我不知道 html 敏捷包,但由于它是基于 xpath 的,您应该可以使用 //div[contains(@class,'contact-phone')]/a(注意:这也将选择具有诸如contact-phone-something 类的 div 元素)
  • @MarkBaijens 链接嵌套在span 标记中,因此/a 不会针对它。
  • @derloopkat //a 然后

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


【解决方案1】:

所以我使用 HTML Agility 包和 Xpath 获得了我需要的值

foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes("//div[@class='" + "contact-phone" + "']/span[@class='"+ "contact-data" + "']/a"))
                        {
                            value = node.InnerText;
                        }

【讨论】:

  • 如果您熟悉 JS querySelector,请尝试 NuGet 插件 Fizzler.Systems.HtmlAgilityPack。它提供了HtmlNode.QuerySelector 方法,接受与JS中相同的查询语法。
猜你喜欢
  • 2011-01-26
  • 1970-01-01
  • 2016-06-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多