C# 使用c检查asp中网页上的所有css#

C# 使用c检查asp中网页上的所有css#,c#,html-agility-pack,C#,Html Agility Pack,我想显示列表,并想计算特定url的css文件数。这是我的密码: var document = new HtmlDocument(); document.LoadHtml(firsturlpagesource); var cssTags = document.DocumentNode.SelectNodes("//link"); if (cssTags != null) { urlcsscountlbl.Text = ""; //number

我想显示列表,并想计算特定url的css文件数。这是我的密码:

    var document = new HtmlDocument();
    document.LoadHtml(firsturlpagesource);
    var cssTags = document.DocumentNode.SelectNodes("//link");
    if (cssTags != null)
    {
        urlcsscountlbl.Text = ""; //numbers of css
        urlcssdetailslbl.Text = ""; // url of css files
        foreach (var sitetag in cssTags)
        {
            if (sitetag.Attributes["href"] != null && sitetag.Attributes["href"].Value.Contains(".css"))
            {
                firsturlcssdetailslbl.Text += sitetag.Attributes["href"].Value + "<br />";
                int countcss = sitetag.Attributes["href"].Value.Count();
                firsturlcsscountlbl.Text = countcss.ToString();
            }
        }
    }

正如您所看到的,只有5个css文件,但total函数返回48个。有人能帮我解决这个问题吗?提前谢谢。对不起,我的英语不好。

问题出在这行

sitetag.Attributes["href"].Value.Count();
这里,您正在对
href
属性的值调用
Count
LINQ扩展方法,该属性等于链接本身的长度(计算字符数)。相反,您应该只计算
cssTags
集合中实际
.css
元素的数量:

    var document = new HtmlDocument();
    document.LoadHtml(firsturlpagesource);
    var cssTags = document.DocumentNode.SelectNodes("//link");
    if (cssTags != null)
    {
        urlcsscountlbl.Text = ""; //numbers of css
        urlcssdetailslbl.Text = ""; // url of css files
        int count = 0;
        foreach (var sitetag in cssTags)
        {
            if (sitetag.Attributes["href"] != null && sitetag.Attributes["href"].Value.Contains(".css"))
            {
                count++;
                firsturlcssdetailslbl.Text += sitetag.Attributes["href"].Value + "<br />";                
            }
        }
        urlcsscountlbl.Text = count.ToString();
    }
var document=newhtmldocument();
document.LoadHtml(firsturlpagesource);
var cssTags=document.DocumentNode.SelectNodes(//链接);
if(cssTags!=null)
{
URLCSSOUNTLBL.Text=”“;//css的数量
urlcssdeailslbl.Text=”“;//css文件的url
整数计数=0;
foreach(cssTags中的var站点标记)
{
if(sitetag.Attributes[“href”]!=null&&sitetag.Attributes[“href”].Value.Contains(“.css”))
{
计数++;
firstURLCSDETailSLBL.Text+=sitetag.Attributes[“href”].Value+“
”; } } URLCSSOUNTLBL.Text=count.ToString(); }
countcss每次都会被重置,正如前面提到的lionk问题一样。 将countcss声明为循环外,并将initialis声明为0; 循环内计数CSS++

int countcss = 0;
foreach (var sitetag in cssTags)
{
    if (sitetag.Attributes["href"] != null && sitetag.Attributes["href"].Value.Contains(".css"))
    {
        firsturlcssdetailslbl.Text += sitetag.Attributes["href"].Value + "<br />";
        countcss++;
        firsturlcsscountlbl.Text = countcss.ToString();
    }
}
int countcss=0;
foreach(cssTags中的var站点标记)
{
if(sitetag.Attributes[“href”]!=null&&sitetag.Attributes[“href”].Value.Contains(“.css”))
{
firstURLCSDETailSLBL.Text+=sitetag.Attributes[“href”].Value+“
”; countcss++; firstURLCSSOWNTLBL.Text=countcss.ToString(); } }
设置断点,检查变量
sitetag.Attributes[“href”].Value.Count()
不会做您认为它会做的事情。
int countcss = 0;
foreach (var sitetag in cssTags)
{
    if (sitetag.Attributes["href"] != null && sitetag.Attributes["href"].Value.Contains(".css"))
    {
        firsturlcssdetailslbl.Text += sitetag.Attributes["href"].Value + "<br />";
        countcss++;
        firsturlcsscountlbl.Text = countcss.ToString();
    }
}