C#获取html元素的属性

时间:2015-09-04 11:08:23

标签: c#

我有这段代码

foreach

我正试图访问" aria-label"看它是否包含单词"开始" ...

使用此代码

static $count=0;

foreach ($item)
{
    for($i=$count;$i<$semesters_count;$i++)
    {
        echo $array_wam[$i];
        $count++;
    }
}

我可以找到课程,但我无法获得属性&#34; aria-label&#34;看它是否包含任何&#34;开始&#34;文本... 你能告诉我这里有什么不对吗? :\

3 个答案:

答案 0 :(得分:0)

因此,如果有一个不包含aria-label作为属性的按钮,您将获得nullreference异常,因为您在null上使用Contains()方法。

所以试试这个:

        String ariaLabel = curElement.GetAttribute("aria-label");
        if (ariaLabel != null && ariaLabel.Length != 0)
        {
            if(ariaLabel.Contains("Start a video call"))
            {
               // do your stuff
            }
        }

答案 1 :(得分:0)

你可以试试这个 -

var p = "<button value='1' class='_42ft _4jy0 _n6m _4jy3 _517h _51sy' data-hover='tooltip' aria-label='Start a video call with Tsiato' type='submit' id='js_rk'><i class='_e0b img sp_qk8sNUxukfD sx_4816f8'></i></button>";
var k = new XmlDocument();
k.Load(new MemoryStream(Encoding.UTF8.GetBytes(p.ToCharArray())));
Console.WriteLine(k.GetElementsByTagName("button")[0].Attributes["aria-label"].Value);

答案 2 :(得分:0)

  1. 您的 class = 属性名称为“class”,而不是“classname”。
  2. 如果您的方法GetAttribute(string)可以返回null,则应始终检查返回的值。

    if (curElement.GetAttribute("classname") == "_42ft _4jy0 _n6m _4jy3 _517h _51sy" 
    && (curElement.GetAttribute("aria-label") ?? "").Contains("Start a video call"))
    {
        label5.Text = "online";
    }