我正在使用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总是空的。值正确保存。我检查大写和小写(坚韧我知道它是小写的)
任何人对此都有任何想法?