【问题标题】:How to fix missing HTML<open> & <close> tags in middle of HTML string如何修复 HTML 字符串中间缺少的 HTML<open> 和 <close> 标签
【发布时间】:2015-10-07 23:59:02
【问题描述】:

我必须在我的项目中验证 HTML 字符串,

我有一个带有 :

的 html
<ul>
    <li>Test 1</li>
    <ol>
        <li>Test 2</li>        
    </ol>
    <li>Test 1</li>
</ul>

要求的输出是:

<ul>
    <li>Test 1</li>
</ul>
<ol>
    <li>Test 2</li>
</ol>
<ul>
    <li>Test 1</li>
</ul>

在 HTML 代码中缺少 &lt;/ul&gt;&lt;ul&gt; 标记。现在在这种情况下如何搜索丢失的标签在哪里以及如何在适当的位置插入适当的结束标签和开始标签。

我尝试了 HTML 敏捷包和 Tidy 库,但找不到更好的解决方案。

【问题讨论】:

  • 你想用代码验证它吗? VS 可以在编辑器中验证 HTML 代码。
  • 我从富文本编辑器中得到这个 HTML 代码,大多数时候 HTML 代码由编辑器验证,但是当用户不正确的公告和缩进编辑器编号时不会验证代码。

标签: c# html css .net string


【解决方案1】:

使用任何 DOM 操作库,您都需要创建一个规则集来描述哪些元素可以是 &lt;ul&gt; 元素的子元素。遍历其所有子元素,当您发现不允许的子元素 (&lt;ol&gt;) 时,将所有后续子元素(包括 &lt;ol&gt; 子元素)移至 &lt;ul&gt; 元素的父元素,并将其放置在&lt;ul&gt; 元素 + 1。

【讨论】:

  • 谢谢,我会尝试做这种方法的。
猜你喜欢
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多