正在清理由contentEditable在c#中创建的HTML
本文关键字:创建 HTML contentEditable 理由 | 更新日期: 2023-09-27 18:20:00
我编写了一个文档编辑器,它使用contentEditable创建HTML内容。在一些较大的文档中,语法风格似乎无处不在。这很可能是从wordpad和早期版本的编辑器中粘贴内容的结果。
问题是,现在我留下了很多非常不一致的文件。
它开始时相当正常。每条线的简单<p>
标签
<p>It is a truth</p>
<p>universally acknowledged</p>
<p>that a single man</p>
到目前为止,唯一"糟糕"的html是几个空的<i></i>
标签,偶尔还有
而不是空白(有人知道为什么吗?)
然后在文档的一半处,换行符切换为这种格式。
<div>
<br>
CHAPTER 1<br>
<br>
The sky above the port
<br>
was the color of a television
<br>
tuned to a dead channel.
</div>
<div>
<br>
</div>
然后在页面的3/4处,我们得到了这个。它似乎已经恢复到<p></p>
标签,但现在将它们随机嵌入到具有空lang
属性的<span>
标签中
<div>
<span lang="">
<p>It was the best of times,</p>
<p>it was the worst of times,</p>
</span>
<p>it was the age of wisdom,</p>
<p>it was the age of foolishness,</p>
</div>
注意:有些行在<span>
内部,有些行在外部。
更糟糕的是,稍后我们会得到嵌套的<span>
标签
<span lang="">
<div>
<span lang="EN-GB">
<p>Stately, plump </p>
<p>Buck Mulligan came </p>
<span lang="EN-GB">
<p>from the stairhead, </p>
<p>bearing a bowl of lather </p>
<span lang="EN-GB">
<p> on which a mirror and a razor lay crossed</p>
</span>
</span>
</span>
</div>
</span>
您还可能注意到,<span>
和<div>
标记的父子关系现在一开始就颠倒了,<div>
现在是<span>
的子级
我注意到了其他奇怪的事情。在开始时使用CCD_ 13,但是稍后使用<em></em>
。
- 清理此HTML的最佳方法是什么
- 我应该尝试用
<p>
标记包围孤立的行吗 - 如何仅删除那些本身包含
<p>
标签的<div>
标签?如何避免在文档中留下孤立文本
是一个难题,我在从文本编辑HTML时也遇到了同样的问题。
我发现了这个免费的纯HTML+JS编辑器:TinyMCE
http://www.tinymce.com/
其中包括清除文本选项,您可以从文本中选择要清除的标记。
如果您有机会更改正在使用的编辑器,它将非常强大。