Mi programa necesita analizar archivos css en un formato de objeto en memoria. ¿Algún consejo sobre cómo debe hacerse esto?¿Hay un analizador de CSS para C#?
Respuesta
ExCSS (compatible con CSS2.1 y CSS3) en GitHub: https://github.com/TylerBrinks/ExCSS.
que es una versión más reciente del proyecto de artículo código: http://www.codeproject.com/KB/recipes/CSSParser.aspx
desearía analizar la consulta de medios en un modelo de objetos. no es particularmente difícil hacerlo, pero todo lo que le da es una cadena –
funciona, pero encontró varias cosas que no puede analizar: 'calc (50vw - 23em)' se convierte en 'calc (50vw = 23em)'/' 3rem' se convierte en '3' /' índice z: 2147483647' se convierte en 'z-index: 2.147484E + 09' /' * display: none' se convierte en 'display: none' –
Tampoco maneja' @ -ms-viewport 'return' {System.Collections.Generic.List \ '1 [ExCSS.RuleSet]}' en salida. –
y una búsqueda un poco más lenta se vuelve la entrada de blog "CSS parser class in .NET" que incrusta this gist on GitHub (en caso de que el blog nunca muere).
... ah-y murió – Alex
Here puede encontrar otra especialmente para C# con fuente de muestra.
esto utiliza expresiones regulares que simplemente no va a cortarlo para css complejo –
Escribí uno, usando la gramática especificada en la especificación CSS 2.1. También he lanzado ahora: para más detalles, ver http://www.modeltext.com/css/
Hay un archivo de gramática de CSS para GoldParser:
http://goldparser.org/grammars/files/css.zip
GoldParser es fácil incluir en un proyecto de C#, y genera un analizador LALR reales - no un hack de expresiones regulares.
Analizador LALR - no algunos regex Información en su sitio "Las gramáticas GOLD se basan en la forma y las expresiones regulares de Backus-Naur" – Justin
Buen punto, las expresiones regulares son geniales. Hacer rodar un analizador a mano no es –
Esta es una versión muy simplificada de la gramática de CSS. En su lugar, porté la gramática de referencia CSS (desde la especificación CSS 2.1) para trabajar con el analizador GOLD ... y escribí un ensamblado C# para implementar el resto (use la salida del analizador para calcular el estilo de un elemento en un DOM, usando la especificación de reglas, herencia, valores predeterminados, etc.). – ChrisW
¿Has probado el one featured in JsonFx? Está escrito en C#, analiza la sintaxis de CSS3 y se distribuye bajo una licencia de estilo MIT.
Parece el mejor de un grupo malo (recursión usando sentencias 'goto' - ouch) – briantyler
@B:' goto' es una excelente manera de * evitar * la recursión, ya que evita volver a ingresar a una función. Es una gran alternativa para arriesgar un desbordamiento de pila cuando tiene un número potencialmente alto de iteraciones. – Triynko
¿Qué pasa con la recursión? –
- 1. ¿Qué es un buen analizador de CSS C/C++?
- 2. ¿Hay un analizador de PDF para PHP?
- 3. ¿Hay un analizador de HTML parecido a jsoup para PHP?
- 4. Buscando un analizador de CSS en java
- 5. ¿Hay un analizador de Go?
- 6. ¿Cómo probar un analizador de CSS?
- 7. Analizador para C#
- 8. Buscando un analizador de CSS en Ruby
- 9. ¿Hay un analizador de archivos de registro para archivos log4j?
- 10. ¿Hay un analizador GEDCOM escrito en Python?
- 11. ¿Hay un analizador de Java para BER-TLV?
- 12. ¿Hay un analizador de flex - bison para javascript?
- 13. ¿Hay un analizador de Java para el lenguaje Java?
- 14. Analizador/Analizador para Erlang?
- 15. ¿Hay un buen analizador XML pequeño para un proyecto de C incrustado?
- 16. Jsoup como analizador para C++/C?
- 17. ¿El mejor analizador para C#?
- 18. Un simple XML C analizador
- 19. ¿Hay algún analizador de cadenas de conexión en C#?
- 20. ¿Hay un CSS condicional si para Outlook?
- 21. Analizador/lector de CSV para C#?
- 22. Analizador de código C para .NET
- 23. ¿Hay un Analizador de compilación de Visual Studio?
- 24. Buscando un analizador de código C#
- 25. ¿Hay algún analizador multipart/form-data en C# - (NO ASP)
- 26. recursiva Descenso Analizador de C
- 27. Objective-C DOM analizador XML para iPhone
- 28. ¿Hay un analizador multipart/form-data liviano en C o C++?
- 29. ¿Hay un intérprete para C?
- 30. ¿Hay algún analizador de respuesta HTTP simple para Java?
No entiendo por qué se cerró esta pregunta. Tiene muchos votos de personas que aparentemente se preguntan lo mismo. El hecho de que diferentes personas puedan tener opiniones diferentes sobre la mejor solución, qué gran lugar para hacer una lista de esas opiniones para los demás con la misma pregunta. –
@JonathanWood: estoy totalmente de acuerdo, pero la política es que las recomendaciones de herramientas no están relacionadas con el tema, y está pidiendo una recomendación de herramienta. Entonces cerrarlo es apropiado, incluso si es frustrante. – Bobson
He vuelto a escribir la pregunta para que se pueda volver a abrir – Softlion