Моя программа должна анализировать файлы css в формате объекта в памяти. Любые советы о том, как это должно быть сделано?
Есть ли парсер CSS для С#?
Ответы (6)
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
- person Simon_Weaver; 30.12.2014
@-ms-viewport
, возвращающий {System.Collections.Generic.List`1[ExCSS.RuleSet]}
на выходе.
- person Herman Kan; 28.04.2015
И немного более медленный поиск приводит к сообщению в блоге "класс парсера CSS в .NET", который встраивает эту суть на GitHub (на случай, если блог когда-нибудь умрет).
Существует файл грамматики CSS для GoldParser:
http://goldparser.org/grammars/files/css.zip
GoldParser легко включить в проект C#, и он генерирует настоящий синтаксический анализатор LALR, а не какой-то взлом регулярных выражений.
Пробовали ли вы представленный в JsonFx а>? Он написан на C#, анализирует синтаксис CSS3 и распространяется под лицензией MIT.
goto
- ай)
- person satnhak; 16.06.2011
goto
— отличный способ избежать рекурсии, поскольку он позволяет избежать повторного входа в функцию. Это отличная альтернатива риску переполнения стека, когда у вас потенциально большое количество итераций.
- person Triynko; 30.08.2011
Я написал один, используя грамматику, указанную в спецификации CSS 2.1. Я также выпустил его сейчас: подробности см. на http://www.modeltext.com/css/ а>
Здесь вы можете найти еще один, специально для C#, с исходным кодом.