问题描述
Actual result:
<div><div><p>This is a test</p><ul><li>a</li><li>b</li><li>c</li></ul></div></div>
Expected result
<div><p>This is a test</p><ul><li>a</li><li>b</li><li>c</li></ul></div>
我一直在尝试将整个字符串转换为一个数组,这样我就可以删除它的第一个和最后一个元素,但是由于没有逗号或空格,我很难拆分它。
我该如何进行?被淘汰的 HTML 永远是那个额外的 div
解决方法
此方法将考虑您在第一个 div 中有一个属性的情况(即 <div class='bla'> <div> text </div> </div>
)。
为了完整性和避免未处理的异常,您应该检查边缘情况(例如空字符串、格式错误的 html...)
public string InnerDiv(string html)
{
var start_idx = html.IndexOf(">",html.IndexOf("<div",StringComparison.InvariantCulture),StringComparison.InvariantCulture) + 1;
var last_idx = html.LastIndexOf("</div>",StringComparison.InvariantCulture);
return html.Substring(start_idx,last_idx - start_idx);
}