private string GetWellFormedHTML(string uri,string xpath) ...{ StreamReader sReader = null; StringWriter sw = null; SgmlReader reader = null; XmlTextWriter writer = null; try ...{ if (uri == String.Empty) uri = "http://www.XMLforASP.NET"; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); sReader = new StreamReader(res.GetResponseStream()); reader = new SgmlReader(); reader.DocType = "HTML"; reader.InputStream = new StringReader(sReader.ReadToEnd()); sw = new StringWriter(); writer = new XmlTextWriter(sw); writer.Formatting = Formatting.Indented; //writer.WriteStartElement("Test"); while (reader.Read()) ...{ if (reader.NodeType != XmlNodeType.Whitespace) ...{ writer.WriteNode(reader, true); } } //writer.WriteEndElement(); if (xpath == null) ...{ return sw.ToString(); } else ...{ //Filter out nodes from HTML StringBuilder sb = new StringBuilder(); XPathDocument doc = new XPathDocument(new StringReader(sw.ToString())); XPathNavigator nav = doc.CreateNavigator(); XPathNodeIterator nodes = nav.Select(xpath); while (nodes.MoveNext()) ...{ sb.Append(nodes.Current.Value + " "); } return sb.ToString(); } } catch (Exception exp) ...{ writer.Close(); reader.Close(); sw.Close(); sReader.Close(); return exp.Message; } }