如何在 htmlagilitypack 中转义 /n/t/t/t

Posted

技术标签:

【中文标题】如何在 htmlagilitypack 中转义 /n/t/t/t【英文标题】:How can I escape /n/t/t/t in htmlagalitypack 【发布时间】:2020-11-23 13:14:20 【问题描述】:

我想通过 html-agility-pack 从cvedetails.com 解析受影响的版本表。我写了如下代码。我通过 puppeteer 获得了表格的原始 HTML。 via(VulnerabilityParser.GetAffectedVersionAsync() 函数)

string versionsTableRawHTML = await VulnerabilityParser.GetAffectedVersionAsync(AffectedVersionsSelector);

        var versionsTable = new HtmlDocument();
        versionsTable.LoadHtml(versionsTableRawHTML);

        foreach (HtmlNode table in versionsTable.DocumentNode.SelectNodes("//tr/td"))
        
            var row= table.SelectSingleNode("//tr/td[5]").InnerText;           
        

以下结果属于我的行变量。 "\n\t\t\t\t\t\t\t\t1\t\t\t\t\t\t\t"

我检查了目标站点。它不在里面。 这个结果的原因是什么?我应该如何解析这个?

【问题讨论】:

【参考方案1】:

要获取表格的行,您可以按照以下方法进行

  HtmlWeb mWb = new HtmlWeb();

         HtmlDocument mDoc= mWb.Load("https://www.cvedetails.com/cve/CVE-2019-16223/");

        var rows = mDoc.DocumentNode.SelectNodes("//td[@class='num']");

        foreach (var row in rows)
        
            //Each row number
            Console.WriteLine(row.InnerText);
        

要获取其他列,您可以采用相同的方法并在长度为 700 的 for 循环中拆分所有行

【讨论】:

以上是关于如何在 htmlagilitypack 中转义 /n/t/t/t的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySql 中转义撇号(')?

如何在 JavaScript 中转义单引号 ( ' )? [复制]

如何在 cloudformation“Fn::Sub”中转义“$”

如何在 pdo 中转义字符串? [复制]

如何在 Bash 中转义双引号? [复制]

如何在docker文件中转义#?