public override void Extract(object sender, Events.ExtractionEventArgs e) { base.Extract(sender, e); IEnumerable <XElement> elements = base.Document.Document.Descendants(); IEnumerable <XElement> hiddenElements = from el in elements where el.Name.LocalName.Equals("input") && el.Attribute(XName.Get("type")).Value.Equals("hidden") select el; foreach (XElement nextElement in hiddenElements) { string name = String.Empty; string value = String.Empty; if (nextElement.HasAttributes && nextElement.Attribute(XName.Get("name")) != null) { name = nextElement.Attribute(XName.Get("name")).Value; if (nextElement.Attribute(XName.Get("value")) != null) { value = nextElement.Attribute(XName.Get("value")).Value; } base._context[name] = value; } } }
public override void Extract(object sender, Events.ExtractionEventArgs e) { if (String.IsNullOrEmpty(_elementName)) { throw new ArgumentNullException("Element name may not be null."); } base.Extract(sender, e); IEnumerable <XElement> elements = base.Document.Document.Descendants(); IEnumerable <XElement> selectedElements = from el in elements where el.Name.LocalName.Equals(_elementName) select el; int elementIndex = 0; foreach (XElement nextElement in selectedElements) { base._context[String.Format("{0}{1}", _elementName, elementIndex)] = nextElement; elementIndex++; } }