public FormContainer CopyNew() { FormContainer _copy = new FormContainer(Website); _copy.Action = this.Action; _copy.Method = this.Method; foreach (string item in _inputs) { _copy.AddInput(item); } return(_copy); }
private void FilterFormContainer(List <HtmlNode> docNodeList, string website) { // Valide InputTags zur weiteren Verarbeitung --> DEBUG: "submit entfernt" IEnumerable <string> validInputTags = new List <string>() { "text", "password" }; // Valide FormTags zur weiteren Verarbeitung IEnumerable <string> validFormTags = new List <string>() { "action", "method" }; // Prüfe alle HTML Nodes (tags) foreach (var node in docNodeList) { // Formtags mit validen Attributen als FormContainer anlegen if (node.Name.ToLower() == "form") { _formTagOpen = true; if (_frmContainer == null) { _frmContainer = new FormContainer(website); } else { // Speichere aktuellen FormContainer in Liste _formTags.Add(_frmContainer.CopyNew()); // Lege für weiteres FormTag ein neues Objekt an _frmContainer = new FormContainer(website); } // Speichere die validen Attribute des FormTags im FormContainer-Object foreach (var attribute in node.Attributes) { if (validFormTags.Contains(attribute.Name.ToLower())) { _frmContainer.SetAttributeValue(attribute.Name, attribute.Value); } } } // Input Nodes in FormContainer speichern if (node.Name.ToLower() == "input" && _formTagOpen) { // InputTag in Liste der validen Tags? if (validInputTags.Contains((node.GetAttributeValue("type", "undefined").ToLower()))) { _frmContainer.AddInput(node.GetAttributeValue("name", "undefined")); } // Submit in FormContainer speichern if (node.GetAttributeValue("type", "undefined").ToLower() == "submit") { _frmContainer.AddSubmit(node.GetAttributeValue("name", "undefined"), node.GetAttributeValue("value", "undefined")); } } } // Letztes FormTag als Object in den Container hinzufügen if (_frmContainer != null) { _formTags.Add(_frmContainer); } }