Is there any option to have a less strict html validator?

edited September 2012
I am trying to do some queries on a table which has a column which contains a html style email message, but when I call Util.RawHtml on the column it gives the error Cannot parse custom HTML: '

The following samples give an illustration of a good and bad example which seems to be caused by the presence of <meta> and <br> tags without the corresponding </meta> and </br> tags.

var html = @" <html> <head> <meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1""></meta> </head> <body> <b>Hello</b><br></br>world. </body> </html> "; Util.RawHtml(html).Dump(); // Works fine var html2 = @" <html> <head> <meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1""> </head> <body> <b>Hello</b><br>world. </body> </html> "; Util.RawHtml(html2).Dump(); // Throws error Cannot parse custom HTML:

Is there anything that can be done to display such messages?

Thanks
Stephen

PS
Apologies for the formatting, hopefully this will be readable.

Comments

  • Util.RawHtml emits an XElement which feeds into a larger XDocument when dumped (along with everything else that you Dump). This is why it must be valid XML - otherwise the XElement constructor will throw an exception.

    LINQPad's Dump method is implemented mostly as a LINQ query, which is why it relies on LINQ to XML.
  • Thanks.

    I decide to forget about trying to display to message but instead display a link which opens a webbrowser ie


    (from msg in messages
    select new { msg.DateTime, msg.Subject ,
    Link = (new Hyperlinq(
    QueryLanguage.Expression,
    String.Format("new System.Windows.Forms.WebBrowser()" +
    " {{ DocumentText = System.Uri.UnescapeDataString( \"{0}\") }} "
    , System.Uri.EscapeDataString(msg.BodyHtmlText)) ,
    "Click here to view message"))
    }).Dump();

    I also needed to add System.Windows.Forms.dll to the defaults
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!