Pergunta
Eu usei bastante a API StAX em Java e considero-a uma maneira bastante limpa de lidar com arquivos XML.Existe alguma biblioteca equivalente que eu possa usar para realizar processamento semelhante em C?
Solução
libxml é uma biblioteca XML muito usada e documentada para C, que fornece uma API SAX. Expatriado é outra, mas na minha experiência não está tão bem documentada.
Outras dicas
Eu usei o Expat bastante - gosto dele por sua simplicidade e tamanho reduzido.
Expatriado faz StAX
#include "expat.h"`
VRM_parser = XML_ParserCreate("ISO-8859-1");
XML_SetElementHandler(VRM_parser, CbStartTagHandler, CbEndTagHandler);
XML_Parse(VRM_parser, text, strlen(text), 0); // start of XML
XML_Parse(VRM_parser, text, strlen(text), 0); // more XML
XML_Parse(VRM_parser, text, strlen(text), 0); // more XML
XML_Parse(VRM_parser, text, strlen(text), 0); // more XML
XML_Parse(VRM_parser, "", 0, 1); // to finish parsing
Huh?Não, Expat não faz Stax, e o exemplo de código confirma isso.
Talvez você quisesse dizer que faz algo parecido com SAX?
Se você não se opõe ao C++ então experimente Lhama
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow