我正在使用 Asp.net。,假设我允许用户在我的网站上发布带有 HTML 标记的消息。我如何确保他已正确关闭所有标签?是否有任何可用的 HTML-tag-checker 尝试解析标签并报告错误(如果有)?可能就像 BLOGGER 一样。
6 回答
您可以使用HTMLTidy来确保 HTML 格式正确。不确定它是否会在不修复错误的情况下报告错误,但它是开源的,所以你可以破解它来做到这一点。
您可以自己轻松地解析文本。定义允许需要关闭的标签列表(strong、em 等)。解析代码并将每个 HTML 标记作为标记并将其推送到堆栈中。找到结束标记后,查看顶部项目,如果它不是找到的结束标记的补充,则 HTML 嵌套不正确。
假设从堆栈中删除成对的标签/结束标签,剩余元素是已开始但未完成的标签。这只是一种初步的方法,但它可能只需要几行代码就可以识别不正确的嵌套标签或未闭合的标签。
我认为您可以尝试使用WYSIWIG编辑器之一……(好的编辑器包括http://www.fckeditor.net/、http://tinymce.moxiecode.com/、http://freetextbox.com/ )您应该能够强制它进入“源代码模式”,他们可能会为你整理糟糕的 HTML(尽管我自己实际上并没有绑定这种技术:D)
我喜欢使用 wc3 在http://validator.w3.org/上的在线 html 验证器 ,但请记住首先确保您的整个文档在评论之外是有效的,否则这可能是一次非常有趣的旅行。
只是一个离题的想法 - 使用 Wiki 风格的引擎。这样你就可以按照你想要的方式自己格式化 HTML。
Firefox 的 webdeveloper 工具栏插件有一个功能,允许您使用 w3c 验证器 - 工具->验证本地 HTML 来验证您当前正在查看的页面的 html。
无论如何,它可能正在使用验证器中可用的功能。我认为它可能会创建一个临时的 html 文件并上传它。