如何将生成的HTML字符串输出到没有段落格式的文本框
本文关键字:段落 格式 文本 字符串 HTML 输出 | 更新日期: 2023-09-27 17:50:14
我正在WPF应用程序中生成一个HTML字符串,并将其输出到一个多行文本框中。现在输出是换行的,但显示的形式类似于一个段落。我希望它被显示为格式化的HTML。它甚至不必是非常好的格式,但至少不显示一段HTML。
我怎样才能做到这一点?
如果您的HTML是格式良好的XML,那么XElement.ToString()
方法将使用缩进和换行进行格式化:
try
{
formattedOutput = System.Xml.Linq.XElement.Parse(myHtmlString).ToString();
}
catch
{
// isn't well-formed xml
}
你可以使用AngleSharp包来完成:
/// <summary>
/// Returns a formatted version of the specified HTML text (which will presumably be unformatted - e.g. all on one line).
/// Uses the AngleSharp library/package.
/// </summary>
public static String FormatHtmlText(String htmlText)
{
try
{
var parser = new AngleSharp.Html.Parser.HtmlParser();
using var document = parser.ParseDocument(htmlText);
using var sw = new StringWriter();
var formatter = new AngleSharp.Html.PrettyMarkupFormatter { Indentation = " ", NewLine = Environment.NewLine };
document.ToHtml(sw, formatter);
return sw.ToString();
}
catch
{
return htmlText;
}
}
StringWriter
需要using System.IO;
语句在顶部