我面临一个问题。我正在使用HTML的bbcode解析器,当我尝试解析它时,当我的解析器集中没有标签时,我会遇到一些问题。
例如:我的解析器允许只是[b]
,[center]
和[i]
标签。如果我尝试解析[u]
或[color={anyColor}]
标记,它将返回异常。
我想删除任何其他不允许的标签。
首先,我考虑过不允许在textarea上使用它,但是,当我使用ctrl+ c/v填充textarea时,它将使用这些标记填充,并且当数据已经存在于数据库中时,我会注意到它。
我的想法:
有人可以帮我吗?还是建议我别的东西?
快速浏览了在您提供的链接上找到的解析器src之后,似乎如果它遇到了一个未知的标记(意味着不在实例化期间提供的标记列表中),则会出错(以某种方式) 。
就目前而言,您似乎可以选择以下几种方式:
ErrorMode
为ErrorFree
。
Unknown tags
视为文本。如果可以,可以直接将所有可能的标签添加到解析器中,而不是直接使用HTML,请检查是否可以从解析器中获取ac#对象,并消除多余的标签,然后再输出到html。
或在生成html之后事态下滑,禁止使用生成的HTML标签。
向代码解析器的作者发送电子邮件/(如果您知道德语),在Codeplex上发送票证/问题,并请他们添加对剥离不必要标签的支持。
或者,如果您想要的话,因为您拥有src add功能来去除不需要的标签,您自己
Tags
列表所具有的模式BBCodeParser.cs
创建一个TagsToIgnore
列表,然后在标记解析的其余部分之前添加一个检查,以剥离/继续下一个标记。编辑:您也许能够使解析器解释标记以不显示任何内容。在此处初始化bbCodeParser。
var parser = new BBCodeParser(new[]
{
// keep these tags
new BBTag("b", "<b>", "</b>"),
new BBTag("i", "<span style=\"font-style:italic;\">", "</span>"),
new BBTag("u", "<span style=\"text-decoration:underline;\">", "</span>"),
// remove these (or at least there markup)
new BBTag("code", "", ""),
new BBTag("img", "", ""),
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句