Я играю с элементом управления webbrowser и классом htmlElementcollection, чтобы получить все html внутри формы. Я заставил эту функцию зацикливаться на всем, и если метка найдена, она должна сохранить значение в атрибуте «И», а также в текстовом значении метки. то, когда элемент ввода найден, он должен проверить, содержит ли его имя текст, сохраненный в переменной ForID, если это так, добавить и показать.HtmlElement.GetAttribute ("for") Возвращает пустую строку
код:
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);
}
Так что happpens что forID всегда пусто. значение сохраняется правильно. Я проверяю прописные и строчные буквы (жестко я знаю, что это строчные буквы)
У вас есть идеи по этому вопросу?