Estoy buscando un analizador XML muy pequeño para un proyecto incrustado. Necesita compilar hasta 10-15k, no necesita validar y debe ser simple y portátil.¿Hay un buen analizador XML pequeño para un proyecto de C incrustado?
Respuesta
Siempre puede implementar su propia implementación. Hice esto hace unos años, y ahora agregué un poco de documentación de interfaz al código en mercurial.intuxication.org/hg/cstuff.
Tenga en cuenta que el analizador nunca se ha utilizado en un entorno de producción o incluso se ha probado más que de manera rudimentaria; los comentarios tampoco existen, así que diviértete grafiando el código si necesitas modificarlo;)
Gracias Christoph. Eso es exactamente lo que hice al final, transferir mi propia implementación. De hecho, lo implementé antes de su publicación, pero gracias de todos modos, eche un vistazo a su implementación y la comparo con la mía. – Joe
@Christoph, esto parece exactamente lo que estaba buscando, ¡gracias por publicarlo! – mikepurvis
Pude ajustar los indicadores de compilación de las siguientes bibliotecas de analizadores XML para C y reducir más del 50% de su tamaño en mi máquina Ubuntu. Mini-XML es el único cercano a lo que solicitó:
Hay una buena discusión aquí:
Estaba buscando por un poco y me encontré SimpleXML (http://simplexml.sourceforge.net/) y el sxmlc un poco más grande (http://sourceforge.net/projects/sxmlc/)
encuentro SimpleXML más interesante porque es más simple, yo no lo probé pero parece que coincide con lo que tengo en mente, una biblioteca de archivo único (bien .h y .c) que no admite características XML exóticas.
El analizador XML simple es un pequeño analizador para un subconjunto de XML (todo excepto entidades y espacios de nombres). Utiliza una interfaz simple de "un solo controlador por etiqueta" y es adecuado para su uso con dispositivos con recursos limitados.
He desarrollado sxmlc ("Simple XML in C") exactamente para ser así: la menor cantidad de archivos posible. Es solo un archivo, con un archivo de "búsqueda" opcional que puede agregar si necesita una búsqueda similar a XPath a través del documento.
Maneja la carga de estilo DOM (todo el árbol de documentos en la memoria) o la carga de estilo SAX (llamadas de devolución cada vez que se lee un nodo con sus atributos o se lee texto en un nodo). Si la memoria es una preocupación, te interesarán los SAX.
Algunas personas también estaban interesadas por el hecho de que puede analizar los archivos o los búferes de memoria (útil cuando obtiene XML como respuesta web).
Maneja archivos Unicode desde la versión 4 hasta #define
, por lo que si no necesita Unicode, simplemente no defina el SXMLC_UNICODE
y no habrá ningún aumento de peso en el binario.
También tengo que decirlo guarda comentarios al escribir de nuevo XML en el disco! Siempre me sentí mal cuando las personas dedican tiempo a explicar la sintaxis de configuración en archivos XML ("poner 'verdadero' para habilitar la compresión especial ..."), que se borran cuando la aplicación lo guarda.
Compila en Linux y Windows. Recibí buenos comentarios de personas que lo incluían felizmente en los enrutadores.
Como quiero que sea lo más simple posible, probablemente no agregue nuevas funciones sino que mejore las existentes (¡y corrija errores, por supuesto! :)). No soy muy activo en su desarrollo, a menos que se reporten errores.
Pruebe yxml - es un analizador no validador realmente pequeño y rápido.
- 1. Un simple XML C analizador
- 2. ¿Hay un analizador de CSS para C#?
- 3. Sistema de compilación para un proyecto incrustado de C/C++
- 4. ¿Un buen analizador de ocaml?
- 5. ¿Hay un buen y pequeño servidor web de Python?
- 6. ¿Qué es un buen analizador de CSS C/C++?
- 7. Buscando un buen analizador semántico para el idioma ruso
- 8. Dónde está un buen analizador de direcciones
- 9. Un ejemplo de un proyecto incrustado para una sola persona
- 10. ¿Hay algún buen analizador X12 en Java?
- 11. ¿Hay un analizador de PDF para PHP?
- 12. ¿Hay un buen método general para depurar macros de C++?
- 13. ¿Cuándo es un proyecto PHP demasiado pequeño para un framework?
- 14. Objective-C DOM analizador XML para iPhone
- 15. python: ¿hay un analizador XML implementado como generador?
- 16. ¿Hay un buen editor web.config?
- 17. ¿Hay un analizador de Go?
- 18. ¿Hay un analizador GEDCOM escrito en Python?
- 19. ¿Hay un buen servidor (válido) para mercurial?
- 20. Analizador ligero XML C++ SAX
- 21. Tecnologías web para un servidor incrustado
- 22. Un buen proyecto de Swing para aprender las mejores prácticas
- 23. control Fuente para un proyecto pequeño con pocos desarrolladores
- 24. ¿Existe un buen código abierto xml ide?
- 25. ¿Hay un buen J2ME IDE?
- 26. ¿Hay un buen CMS para usar con ASP.Net MVC
- 27. ¿Hay un analizador de archivos de registro para archivos log4j?
- 28. Flex e incrustado XML
- 29. mejor analizador de Xml de Java para manipular/editar un documento xml existente
- 30. ¿Qué es un buen primer proyecto de código abierto?
Similar a [ C Biblioteca XML para sistemas incrustados ] (http://stackoverflow.com/questions/1131701/c-xml-library-for-embedded-systems), aunque no veo ninguna respuesta excelente . –
¿XML es un requisito absoluto? 15k es bastante ajustado para algo que no se distribuye manualmente para cumplir con sus requisitos, pero me sorprendería que no pudiera encontrar un analizador JSON estándar que fuera tan pequeño. – llasram
Hola, llasram, gracias por tu comentario. Sí, XML es un requisito. Al final, resolví mi problema haciendo exactamente eso: mano rodando un analizador XML que cumplía con mis requisitos. El código resultante llegó solo a un par de K ... pero, una vez más, mis requisitos de análisis XML resultaron ser bastante simples cuando los estudié de cerca. – Joe