我尝试将bbcode转换为c#中的html。
我目前正在使用http://bbcode.codeplex.com/
中找到的代码我希望bbcode像:
[list][*]one[*]two[/list]
要变成:
<ul><li>one</li><li>two</li></ul>
相反,我得到:
<ul><li>one<li>two</li></li></ul>
对我来说看起来不像是有效的HTML。
网站上的一条评论http://bbcode.codeplex.com/workitem/9656似乎没有在我使用的版本中做任何不同的事(CodeKicker.BBCode-Parser-5.0),尽管示例代码中有一个额外的布尔参数,我的版本不接受。
有没有人对这个转换器有运气,或者有更好的转换器,或者有没有办法让它输出有效的HTML?例如,我可以输出它:
<ul><li>one<li>two</ul>
但它看起来很狡猾(但我觉得它有效)。
答案 0 :(得分:3)
解析器支持不同用例的不同嵌套样式。您输入的语法拼写错误,但如果配置正确,解析器可以处理它。
这应该让你开始:
new BBCodeParser(ErrorMode.ErrorFree, null, new[]
{
new BBTag("list", "<ul>", "</ul>", true, true),
new BBTag("*", "<li>", "</li>", true, false),
});
另请注意,BBTagClosingStyle
构造函数接受BBTag
枚举。如果上述代码无效,请尝试BBTagClosingStyle.LeafElementWithoutContent
。源代码有以下注释:leaf elements have no content - they are closed immediately
听起来很有希望。
此代码段适用于1.0版本,但未来版本通常保持兼容性。