Sont-ils tous si complexes? : http://msdn.microsoft.com/en-us/library/ms766497(VS.85).aspxAPI XML dans C?
juste besoin de quelque chose de base pour produire XML en C.
Sont-ils tous si complexes? : http://msdn.microsoft.com/en-us/library/ms766497(VS.85).aspxAPI XML dans C?
juste besoin de quelque chose de base pour produire XML en C.
MiniXML pourrait être ce que vous cherchez, si vous avez besoin quelque chose de simple , facile et C:
Mini-XML: Lightweight XML Library
Mini-XML est une petite bibliothèque XML vous pouvez utiliser pour lire et écrire des fichiers de données XML et XML dans votre application sans nécessiter de grandes bibliothèques non standard . Le mini-XML seulement nécessite un compilateur compatible ANSI C (GCC fonctionne, comme le font les compilateurs ANSI C de la plupart des fournisseurs) et un programme 'make'.
Cependant, il existe un ton of them de complexité et de besoin. MiniXML est agréable car il ne nécessite pas plus qu'un simple compilateur Ansi C. Beaucoup d'entre eux nécessitent d'autres bibliothèques, ou des compilateurs spécifiques.
-Adam
La meilleure façon de faire XML en C est la haute qualité et genx libre de Tim Bray: http://www.tbray.org/ongoing/When/200x/2004/02/20/GenxStatus
Le balisage de cette réponse mériterait une vérification ... – bortzmeyer
Oui, mais le fait que je sois trop boiteux pour comprendre comment utiliser les liens ne devrait pas nuire à l'examen de ces deux bibliothèques. Ils sont tous deux très bons. – Crowley
J'aime libxml. Voici un exemple d'utilisation:
#include <libxml/parser.h>
int
main(void)
{
xmlNodePtr root, node;
xmlDocPtr doc;
xmlChar *xmlbuff;
int buffersize;
/* Create the document. */
doc = xmlNewDoc(BAD_CAST "1.0");
root = xmlNewNode(NULL, BAD_CAST "root");
/* Create some nodes */
node = xmlNewChild(root, NULL, BAD_CAST "node", NULL);
node = xmlNewChild(node, NULL, BAD_CAST "inside", NULL);
node = xmlNewChild(root, NULL, BAD_CAST "othernode", NULL);
/* Put content in a node: note there are special characters so
encoding is necessary! */
xmlNodeSetContent(node,
xmlEncodeSpecialChars(doc, BAD_CAST "text con&tent and <tag>"));
xmlDocSetRootElement(doc, root);
/* Dump the document to a buffer and print it for demonstration purposes. */
xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
printf((char *) xmlbuff);
}
Compilé avec gcc -Wall -I/usr/include/libxml2 -c create-xml.c & & gcc -o -lxml2 créer xml-créer-xml. o », ce programme affiche:
% ./create-xml
<?xml version="1.0"?>
<root>
<node>
<inside/>
</node>
<othernode>text con&tent and <tag></othernode>
</root>
Pour un exemple réel, voir my implementation de RFC 5388.
Très cool, merci. –
Tommy, s'il vous plaît poser une nouvelle question, plutôt que de changer celui-ci. –
vtd-xml a aussi un port C. –