XML de structure C et C struct XML
J'aime faire de mon côté serveur de la programmation en C, mais le besoin d'inter-opérer avec du XML.
Ce que j'ai besoin d'écrire est une fonction qui, étant donné une structure C, ou de la structure imbriquée, et une autre structure (ou de structures imbriquées) qui décrit les éléments dans la structure C, crache, comme le XML. Et une autre fonction qui lit le XML, vérifie qu'il correspond à la description de la C structures, et remplit la C structures.
Je suis tout à fait certain de ce qui a été fait de nombreuses fois avant, mais il y a tellement d'autres info à propos de XML que je ne suis pas du tout avoir la chance de composer une Google requête qui ne retourne pas de beaucoup de sans rapport avec des trucs.
Je ne suis pas à la recherche de la bibliothèque, à seulement quelques centaines de lignes de code C pour parser le XML.
Parce que parfois, mes trucs hits de la page d'accueil des sites comme digg.com et je ne suis pas vraiment envie de dépenser beaucoup sur puissant d'hébergement. Il a aussi vraiment vraiment la coupe vers le bas sur les dépendances, ce qui le rend bon quand quelqu'un licences le code (ce qui arrive aussi, de temps à autre). Mais il est convenu, - chaque fois que vous commencez à appeler malloc() beaucoup, C est pas la bonne langue. C'est pourquoi en général je faire de mes chaînes de caractères de longueur fixe et d'éviter de malloc.
Je suppose qu'il n'y a pas vraiment quelque chose de facilement disponibles que je peux utiliser, j'ai donc écrit un simple analyseur XML dans C. Son n'est assez bon pour mon besoin, mais c'est aussi seulement à 350 lignes de code C.
Écrire un parser XML en C??? Très étrange idée. Il y a déjà plusieurs très bons. Voir stackoverflow.com/questions/399704/xml-parser-for-c
Je n'étais pas prêt à inclure un grand nombre de dépendances et de bibliothèques qui devrait plus que doubler la taille de mon projet.
OriginalL'auteur Matthias Wandel | 2009-05-08
Vous devez vous connecter pour publier un commentaire.
Il ne demande pas d'un analyseur XML. Il est en demande d'une bibliothèque qui sérialise automatiquement/unserializes un complexe C de la structure et de XML (qui, évidemment, serait de s'appuyer sur un analyseur XML-dessous).
Libpdel est ancienne, mais a un support pour faire ce que vous voulez (via les "structures" choses").
OriginalL'auteur Archie
Une façon pour vous de le faire si vous ne trouvez pas de premade ou bibliothèques de code à écrire un toXML() fonction que l'habitude toString (). Puis un toStruct(char*) qui désérialise le XML de retour dans la struct
OriginalL'auteur ThePosey
Vous n'allez pas être en mesure d'analyser les données XML dans le cas général, à seulement quelques centaines de lignes de code. Il y a plusieurs analyseur XML bibliothèques, dont expat vient à l'esprit. Expat a été écrit en C, et a un C-amicale de l'API.
La sérialisation est susceptible d'être plus facile, en supposant que vous ne vont pas les noix avec les types de données de soutien.
De toute façon, où cela va vous causer des maux de tête est le maintien de la correspondance entre
struct
mise en page et XML schema.Vous voudrez peut-être chercher dans les bibliothèques comme La vis de serrage qui visent à dissimuler le cas de ressortissants étrangers de la mise en œuvre et de présenter quelque chose de plus comme une arborescence DOM. Il ya aussi des différentes bibliothèques qui mettent en œuvre le SAVON sur le haut d'expatrié, et ceux nécessairement besoin de gérer de regroupement de données dans et hors de paquets XML.
Bon, la sérialisation est toujours plus difficile qu'il n'y paraît, quel que soit le protocole sous-jacent. À mon humble avis, XML, bonne sérialisation encore plus difficile de bien faire, mais c'est seulement à partir de mon expérience personnelle. Votre kilométrage peut varier, probablement considérablement.
avez-vous des ressources pour la structure de mise en page et de schéma XML? Je crois que c'est le nœud de la question (et la mienne aussi). Idéalement, je suis à la recherche pour le sous-ensemble de XML qui sera toujours la carte à une structure C et vice-contre. Je me rends compte du document XML et C de la structure sont fondamentalement différents. Cependant, je suis l'espoir de trouver un terrain d'entente entre les deux qui pourrait être utilisé comme une spécification.
Je n'ai pas de ressources désinvolte. Je voudrais commencer par la cartographie d'un simple
struct
à un tag avec les attributs. Qui fonctionne bien pour des choses commestruct point{ int x; int y; }
qui pourrait être écrit<point x='5' y='17'>
. Qui fonctionne pour POD sans pointeurs et types de données peuvent être écrites dans le (très) texte brut. Une autre tag peut être utilisé pour recueillir des tableaux. Il devient plus intéressant lorsque vous avez besoin de représenter chaîne arbitraire de données, des structures autres que l'arbre, les pointeurs, et ainsi de suite.... ne pas oublier les questions de sécurité, que ce soit. Coffre-fort, la Sérialisation est Dur.merci pour les conseils. Je suis bon à C, mais pas aussi familier avec les détails de XML (à ma connaissance de XML est principalement d'ordre pratique, travail des connaissances). Je m'attendais à un expert XML pour fournir un schéma que j'ai pu du code de mon application C de. Je n'ai pas utiliser XML sur un serveur ou quoi que ce soit qui utilise une DTD.
OriginalL'auteur RBerteig