HtmlAgiltyPack 解析 HTML 并从 span 标记和类名中获取值



我有一个通过我的webrequest客户端下载的HTML。在整个 html 中,我只想解析 HTML 的这一部分:

<span class="sku">
<span class="fb">SKU                            :</span>118880101
</span>

我正在使用 HTML agilty pack 来检索此值:118880101

我写了这样的东西:

 HtmlDocument htmlDoc = new HtmlDocument();
 htmlDoc.LoadHtml(html);
 return htmlDoc.DocumentNode.SelectNodes("//span[@class='sku']").ElementAt(0).InnerText;

这从 HTML 中返回了这个值:

SKU                            :118880101

从字面上看,包括空间...如何使用 HTML Agilty 包修复此逻辑,以便我只能取出此118880101值?

有人可以帮助我吗?

编辑:像这样的正则表达式可以做到这一点:

Substring(skuRaw.LastIndexOf(':') + 1);

这意味着在我收到的字符串中获取":"之后的所有内容......但我不确定像这样使用正则表达式是否安全?

试试这个

     HtmlDocument htmlDoc = new HtmlDocument();
     htmlDoc.LoadHtml(html);
     var innerText=htmlDoc.DocumentNode.SelectNodes("//span[@class='sku']")
                          .ElementAt(0).InnerText;
     return innerText.replace(/D/g,'');

如果您只想使用 Html 敏捷包,请尝试此操作

       var child = htmlDoc.DocumentNode.SelectNodes("//span[@class='fb']")
                           .FirstOrDefault();
        if (child != null)
        {
            var parent = child.ParentNode;
            parent.RemoveChild(child);
            var innerText = parent.InnerText;              
        }

最新更新