C# GetAttribute(";for";)返回空字符串

C# GetAttribute(";for";)返回空字符串,c#,html,.net,C#,Html,.net,我正在使用webbrowser控件和htmlElementcollection类来获取表单中的所有html。我使用这个函数来循环所有内容,如果找到标签,它必须将值保存在“For”属性中,并保存标签的textvalue。然后,当找到一个输入元素时,它必须检查其名称是否包含保存在变量ForID中的文本,如果是,则追加并显示 代码: private string logLabelInputs(HtmlElementCollection collection) { StringBuild

我正在使用webbrowser控件和htmlElementcollection类来获取表单中的所有html。我使用这个函数来循环所有内容,如果找到标签,它必须将值保存在“For”属性中,并保存标签的textvalue。然后,当找到一个输入元素时,它必须检查其名称是否包含保存在变量ForID中的文本,如果是,则追加并显示

代码:

private string logLabelInputs(HtmlElementCollection collection) {
        StringBuilder sb = new StringBuilder();
        var forID = "";
        var labelValue = "";
        foreach (HtmlElement item in collection) {
            if (item.TagName.ToLower() == "label") {
                forID = item.GetAttribute("for");
                forID = forID == "" ? item.GetAttribute("FOR") : forID;
                labelValue = item.InnerText;
            }
            if (item.TagName.ToLower() == "input") {
                if(item.Name.Contains(forID)) {
                    sb.Append(labelValue + ": " + item.Name + "\r\n\r\n");
                }
            }
            if (item.All.Count > 0) {
                sb.Append(logLabelInputs(item.All));
            }               
        }
        return sb.ToString();
    }

private void button4_Click(object sender, EventArgs e) {
        HtmlElementCollection tagsCollection = webBrowser1.Document.GetElementsByTagName("form");
        textBox1.Text = logLabelInputs(tagsCollection);
    }
所以发生的是forID总是空的。值已正确保存。我检查大小写(我知道是小写)


有人对此有什么想法吗?

最好使用像或这样的javascript框架。 此javascript将跨浏览器使用。

使用以下命令:

item.GetAttribute("htmlfor")