Beispiel #1
0
        private static IEnumerable <string> ToHTMLTableInternal(XContainer xel, int padding)
        {
            yield return(ObjectExtensions.FormatHTMLLine("<table>", padding));

            yield return(ObjectExtensions.FormatHTMLLine("<tr><th>Attribute</th><th>Value</th></tr>", padding + 1));

            foreach (XElement xelement in (IEnumerable <XElement>)xel.Elements().OrderBy <XElement, string>((Func <XElement, string>)(o => o.Name.ToString())))
            {
                if (xelement.HasElements)
                {
                    yield return(ObjectExtensions.FormatHTMLLine(string.Format("<tr><td>{0}</td><td>", (object)xelement.Name), padding + 1));

                    foreach (string str in ObjectExtensions.ToHTMLTableInternal((XContainer)xelement, padding + 2))
                    {
                        yield return(str);
                    }
                    yield return(ObjectExtensions.FormatHTMLLine("</td></tr>", padding + 1));
                }
                else
                {
                    yield return(ObjectExtensions.FormatHTMLLine(string.Format("<tr><td>{0}</td><td>{1}</td></tr>", (object)xelement.Name, (object)HttpUtility.HtmlEncode(xelement.Value)), padding + 1));
                }
            }
            yield return(ObjectExtensions.FormatHTMLLine("</table>", padding));
        }
Beispiel #2
0
 public static string ToHTMLTable(this object o, BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, int maxArrayElements = 5)
 {
     return(ObjectExtensions.ToHTMLTableInternal((XContainer)o.ToXElement(flags, maxArrayElements), 0).Aggregate <string, string>(string.Empty, (Func <string, string, string>)((str, el) => str + el)));
 }