【发布时间】:2014-01-18 21:45:18
【问题描述】:
以下是我遇到的一些标记的两个示例:
Incorrect: "<span>Some info<br /></span>"
Correct: "<span>Some info</span><br />"
Incorrect: "<span>Some other kind of info. <br /> More info</span>"
Correct: "<span>Some other kind of info. More info</span><br />"
我想要做的是将每个中断分成一行,以便我可以将一行显示为表格行。目前,我进入并将所有<br /> 替换为|,以便我可以拆分|。问题是我给我留下了一个未闭合的跨度。
我在想在这种情况下,我所要做的就是将<br /> 之后的</span> 的下一个实例移动到<br /> 之前。但是在这种情况下,中断之后但跨度之前有更多文本,我需要将整个卡盘移动到换行之前。
我对正则表达式很不满意,所以我真的想不出一个正则表达式解决方案。但是常规的子字符串操作很好,我没有偏好。有什么想法吗?
【问题讨论】:
-
这似乎首先是一个 HTML 问题(“当我看到这个输入时,正确的标记是什么?”)和一个 C# 实现问题,只有在你弄清楚了所需的输出之后。如果您需要帮助使用 C# 有效地进行转换,请在找出“纠正”这些转换规则后回来。
-
您能提供一个示例输出吗?
-
已更新。简而言之,我确实需要能够接受 html 标记,找到中断,并确保之前打开的 span 在
之前关闭 -
我建议您澄清 HTML 文本可能包含多行。 标签可能出现在第 5 行,但 可能出现在第 15 行。此外,一个中断可能在一个 sapn 中出现超过 1 次。这些细节让它更有趣!