如何修复遗漏的HTML <open>&amp; HTML字符串中间的<close>标记

时间:2015-07-18 09:35:14

标签: c# html css .net string

我必须在我的项目中验证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代码中</ul><ul>标记丢失。现在,在这种情况下,如何搜索丢失标记的位置以及如何在适当的位置插入适当的结束标记和开始标记。

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

1 个答案:

答案 0 :(得分:0)

使用任何DOM操作库,您需要创建一个规则集,描述哪些元素可以是<ul>元素的子元素。迭代所有孩子,当你发现一个不允许的孩子(<ol>)时,将所有后续孩子(包括<ol>孩子)移到{{1}的父母身上}}元素,将其放在<ul>元素的索引+ 1。