c#使用Codekicker.BBCode将列表转换为html

时间:2014-04-01 10:59:21

标签: c# bbcode

我尝试将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>

但它看起来很狡猾(但我觉得它有效)。

1 个答案:

答案 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版本,但未来版本通常保持兼容性。