簡體   English   中英

如何將生成的 HTML 字符串 output 發送到沒有段落格式的文本框 [關閉]

[英]How to output a generated HTML string to a textbox without paragraph formating [closed]

我在 WPF 應用程序中生成一個 HTML 字符串,並將其輸出到多行文本框。 現在 output 正在換行,但顯示為類似於段落。 我希望它顯示為 HTML 的格式。它甚至不必是非常好的格式,但至少不會顯示 HTML 的段落。

我怎樣才能做到這一點?

如果HTML是格式良好的XML,那么XElement.ToString()方法將使用縮進和換行格式化:

try
{
    formattedOutput = System.Xml.Linq.XElement.Parse(myHtmlString).ToString();
}
catch
{
    // isn't well-formed xml
}

下面是一些將文本轉換為HTML的代碼,但您確實需要更好地解釋“格式化”的含義。

例如,您說您的輸入沒有換行符? 那怎么格式呢? 您是否想要知道在哪里插入換行符然后將輸入分解為段落?

如果您的HTML實際上是XHTML(也稱為XML),您應該能夠使用以下方法對其進行格式化:

http://www.yetanotherchris.me/home/2009/9/9/formatting-xml-in-c.html

您可以使用AngleSharp package 來完成此操作:

/// <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; 聲明在頂部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM