我有一个输入 xml 文档,其中包含格式错误的 html,该 html 已经过 xml 编码。即 xml 文档本身在技术上是有效的。
现在我正在对输出格式正确的 xhtml5 但包含格式错误的 html 的 xml 应用 xsl 转换。
坏 html 的例子:
- html 片段中的 html、head 和 body 标签。
- 字体标签
- 不匹配的引号
- 未封闭的标签
- 没有匹配打开的额外关闭标签
- 以错误的顺序关闭标签(例如
<b><u>text</b></u>
)
现在在我的情况下,我实际上并不关心 html 的格式是否错误——我只关心我的结束标签是否与我的开始标签匹配,而不管两者之间发生了什么。
所以我的问题是-最好的方法是什么
- 充分清理 html,使其不会影响其他标签(最好从转换本身内部)
- 或以某种方式标记一个closetag,以便与html5兼容的浏览器将其识别为匹配特定的打开标记,而不管其间可能存在任何讨厌的标记。
2.我完全没有想法。我对 1. 有几个想法,例如调用 tidy 之类的外部工具或使用 .NET sgml 解析器
msxsl:script
如果不需要,可以接受.NET xsl 脚本 ( )。
示例来源:
<xml>
<b><u>bad html</b></u>
<xml>
示例输出:
<div id="MyDiv">
<b><u>bad html</b></u>
</div> <!-- this /div absolutly must match the opening div regardless of what might be in the bad html -->
还有哪些其他方法可用?
仅限 C#、VS2012、xslt 1.0