如何使用c#获取html元素的父节点的节点名称

时间:2017-08-20 16:04:54

标签: c# asp.net winforms c#-4.0

我需要使用c#。

获取父节点名称及其各自的html元素属性

示例:

<dl class="dlbox">
  <dd> 
      <a class="btn primary" href="http://testurl.org">
            <span>Lorem Ipsum</span>
            <span class="icnsm"></span>     
      </a>
  </dd>
</dl>

代码:

System.Windows.Forms.HtmlDocument doc = webBrowser1.Document; 
        HtmlElementCollection col = doc.GetElementsByTagName("a");

                int i = 0;

                foreach (HtmlElement element in col)
                {
            textBox8.Text = textBox8.Text + col[i].GetAttribute("id") + "\r\n";
                i = i + 1;         
        }

注意:我正在遍历页面并搜索所有锚标签,但我需要检查第二级的父元素,即是否存在相应的锚标记,如果存在则我需要使用c#获取相应dl的类名。

谢谢!非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你可以使用Parent属性,例如:

System.Windows.Forms.HtmlDocument doc = webBrowser1.Document; 
HtmlElementCollection col = doc.GetElementsByTagName("a");

int i = 0;

foreach (HtmlElement element in col)
{
    textBox8.Text = textBox8.Text + col[i].GetAttribute("id") + "\r\n";
    i = i + 1;

    // check if parent is dd
    if(element.Parent != null && element.Parent.TagName.ToLower() == "dd")
    {
        var parent = element.Parent;

        if(parent.Parent != null && element.Parent.TagName.ToLower() == "dl")
        {
            // get class name of dl
            var className = parent.Parent.GetAttribute("class");
        }
    }
}