[英]Convert Html to plain text
我使用tinymce编辑器作为富文本编辑器。 我的问题是当我保存文本时,它以html格式保存,例如
<p> Hello world<p/>
在上面的示例中,我需要一个纯文本,即“ Hello World”。 我在Google上搜索,发现类似html编码的东西。 我不知道那是什么 我是这个概念的新手。 我正在使用asp.net MVC 5,并且已将tinymce用作:
模型是
namespace ProjectNSAS.Models{
public class AboutModels
{
[Key]
public int Id { get; set; }
[UIHint("tinymce_jquery_full"), AllowHtml]
public string Content { get; set; }
}
这可能不是最好的帮助,但是.txt文件也是纯文本的一种形式。 如果您只想查看代码而不运行它,请尝试使用.txt进行操作。
HTML中的某些字符对HTML意味着特殊的意义。 具体来说,打开和关闭标签(“ <”和“>”)放在一起时,意味着它们之间的内容指定了一个元素。 如果这些字符不是HTML标记所必需的,则HTML解析器会遇到麻烦。 当HTML文件想要表示文字大于或小于字符时,它将分别用“>”和“ <”替换它们来“编码”它们。 浏览器和其他使用HTML的产品知道这两个字符串代表“转义”的HTML字符。
.NET有一个小的库,用于转义/取消转义HTML字符串-这是HttpUtility类。 具体来说,请检查HttpUtility.HtmlEncode和HttpUtility.HtmlDecode
在后台,编辑器提供了getcontent方法,该集成没有提供我可以轻松找到的访问点。 但是,实现非常简单。
TinyMCE具有以下代码将其html转换为文本:
在:jquery.tinymce.js:
... t.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g, "") ...
基本上这只是一个javascript正则表达式的替换,在您的C#代码中执行相同的操作,然后解码html。
这是一个示例控制器:
public class TinyController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(TinyMCEModelJQuery model)
{
var foo = model.Content;
Regex regex = new Regex("<(?:\"[^\"]*\"|'[^']*'|[^'\">])*>");
var htmlPlainText = regex.Replace(foo, string.Empty);
var plainText = HttpUtility.HtmlDecode(htmlPlainText);
// do what you need with plainText
return View();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.