La création de XML dans du Code C++
Dans mon projet, il y a des situations où nous devons envoyer des messages xml (char *) entre les modules. Ils ne sont pas vraiment ceux de grande taille, à seulement 10-15 lignes. Maintenant tout le monde vient juste de créer la chaîne. Je ne pense pas que cette approche est la bonne. Nous sommes déjà à l'aide de xerces DOM bibliothèque. Alors pourquoi ne pas créer une arborescence Dom, le sérialiser, puis de l'envoyer.
Ce que les gars, vous ne suggèrent?
OriginalL'auteur HappyGoLucky | 2009-01-29
Vous devez vous connecter pour publier un commentaire.
Si vous êtes vraiment juste de la création de petits messages XML, Xerces est inutile, à mon humble avis. C'est un analyseur de la bibliothèque et vous n'êtes pas d'analyse rien.
Hey, j'ai juste dit "Xerces est un overkill". S'échapper peut (et doit) être manipulés par une seule fonction ou un léger bibliothèque comme Genx: tbray.org/ongoing/genx/docs/Guide.html – Nemanja Trifunovic (
OriginalL'auteur Nemanja Trifunovic
Vous pouvez utiliser le DOM ou écrire vous même une petite C++ XML génération.
La Xerces API a été porté à partir de Java et en utilisant la portée de l'objet, vous pouvez faire générer un document XML à partir d'un code C++ encore plus facile:
Ainsi, le code XML suivant:
OriginalL'auteur Jeroen Dirks
Rapide et facile, essayez de TinyXml API :
http://www.grinninglizard.com/tinyxml/
OriginalL'auteur lsalamon
Je suggère la création de l'arborescence DOM. Vous n'aurez pas à vous inquiéter au sujet d'échapper les caractères XML dans vos données. Si un développeur oublie un moment, vous pourriez avoir de la saisie de l'utilisateur qui rend votre sortie XML incorrect.
OriginalL'auteur bobwienholt
La création de XML à la main est l'un des moyens les plus sûrs de la folie, je le sais. Finalement, quelqu'un sera à vis d'une entité, quelque part, ou une fuite support serez à gauche, ou faire quelque chose... il suffit d'utiliser une bibliothèque. GenX serait mon choix.
Edit: mal lu ton post. Si vous avez déjà une génération de bibliothèque, utilisez-le. Ne pas compliquer les choses inutilement si vous pouvez l'éviter.
OriginalL'auteur user60401
métriques
comparer combien de temps il vous faut pour créer manuellement la chaîne d'une douzaine de fois, puis de comparer combien de temps il faut à la bibliothèque.
Si les membres de votre équipe sont comme le mien, ils vont vite changer leur fusil d'épaule.
de plus, le facteur de l'assurance de la qualité en temps si ils code d'erreur, etc...
utiliser la bibliothèque comme beaucoup que vous le pouvez.
OriginalL'auteur cbrulak
J'ai eu le même problème avec voulant passer des messages xml entre les appareils embarqués.
J'ai écrit ce qui suit (dans un fichier d'en-tête) pour être rapide api pour l'analyse et la génération de xml. Il ne prend pas en charge toutes les fonctionnalités xml, mais le plus simple des messages xml n'a pas besoin d'eux de toute façon:
http://www.scottlangham.co.uk/2009/01/rapidxml-a-quick-xml-parsergenerator-for-c/
Il y a des exemples d'utilisation indiqué dans les commentaires.
À écrire du xml que vous pouvez faire quelque chose comme ce qui suit:
et cela se traduit dans le nouveau xml être ajoutés en vertu de la balise:
Nous avons essayé d'une autre bibliothèque, je ne me souviens pas lequel, et a trouvé qu'il n'était pas assez rapide. Nous ne voulons pas de bâton avec manuellement les chaînes de mise en forme parce que nous avons affaire avec un grand nombre de messages.
OriginalL'auteur Scott Langham
Je voudrais juste utiliser l'arborescence DOM. De cette façon, vous n'avez pas à analyser les données en arrière et en avant lors de l'envoi et de la réception des chaînes xml.
--- Un peu hors sujet:
Pour d'autres personnes juste en passant par ce post par hasard, besoin d'un ultra-léger DOM xml cadre de l'utiliser: http://www.applied-mathematics.net/tools/xmlParser.html
Il est très facile à utiliser, et est composé de 2 fichiers.
OriginalL'auteur Nailer
Si vous êtes en train de créer un milieu de grande fichier XML, vous aurez besoin d'une bibliothèque pour vous aider.
Si vous êtes en train de créer un petit très petit fichier XML, vous pourriez tout aussi bien transmettre le texte.
est à peu près aussi facile que vous pouvez obtenir pour que la taille du fragment XML, si vos fichiers XML sont de cette taille, vous pourriez tout aussi bien construire de cette façon, de ne pas chercher à compliquer les questions juste pour certains puristes idéal qui n'est pas réellement vous aider.
Comme l'optimisation, vous ne devriez jamais changer les choses sans mesurer ce que l'effet qu'elle aurait. Ici, si votre code est facile à entretenir comme il est, de garder avec elle. Seulement essayer de le changer quand il vous ai mesuré sa maintenabilité (ie remarqué son maladroit de mettre à jour les XMLs) et a constaté que sa prend trop de temps pour le confort.
OriginalL'auteur gbjbaanb
J'utilise CMarkup de FirstObject.com.
CodeProject a un vieux de la distribution et textuelles tutoriel (http://www.codeproject.com/KB/cpp/markupclass.aspx)
La distribution du code Source sont disponibles et que le composant est disponible en plusieurs saveurs (Développeur, Développeur Avancé) via le FirstObject page de téléchargement(s).
La FirstObject site web contient de nombreux exemples utiles et ils ont même de distribuer un Éditeur XML.
Non, je ne suis pas un employé, mais je suis un heureux propriétaire de la composante.
OriginalL'auteur SAMills