我的程序需要将 CSS 文件解析成内存对象格式。有什么建议吗?
我的程序需要将 CSS 文件解析成内存对象格式。有什么建议吗?
ExCSS(支持CSS2.1和CSS3)在GitHub上:https://github.com/TylerBrinks/ExCSS。
这是代码项目文章的更新版本:http://www.codeproject.com/KB/recipes/CSSParser.aspx
calc(50vw - 23em)
变成了 calc(50vw = 23em)
/ 3rem
变成了 3
/ z-index: 2147483647
变成了 z-index: 2.147484E+09
/ *display: none
变成了 display: none
。 - Simon_Weaver@-ms-viewport
,在输出中返回 {System.Collections.Generic.List\
1[ExCSS.RuleSet]}`。 - Herman Kan稍微慢一些的搜索结果会出现博客文章".NET中的CSS解析器类",其中嵌入了GitHub上的此代码片段(以防万一博客失效)。
GoldParser有一个CSS语法文件:
http://goldparser.org/grammars/files/css.zip
在C#项目中很容易包含GoldParser,并生成真正的LALR解析器,而不是一些正则表达式的技巧。
你试过JsonFx中的一个特色功能吗?它是用C#编写的,解析CSS3语法,并以MIT风格许可协议分发。
goto
是一个很好的避免递归的方法,因为它避免了重新进入函数。当你有可能需要大量迭代时,它是避免栈溢出的一个很好的替代方案。 - Triynko我写了一个,使用CSS 2.1规范中指定的语法。我现在也已经发布了它:详情请见http://www.modeltext.com/css/