2009-07-28 6 views
2

Je doute que j'utilise TXMLTransformProvider ou TXMLDocument.Meilleures pratiques pour la création et l'analyse de documents XML

TXMLTransformProvider semble plus maintenable, et il me semble que l'utiliser nécessitera moins de codage que TXMLDocument.

D'autre part, TXMLDocument semble plus flexible. Ce dont j'ai besoin est de générer et d'analyser un document XML avec des attributs imbriqués, le mapper à clientDataSets maître-détail et réécrire un document XML.

Avez-vous des conseils à ce sujet?

Merci.

Répondre

6

Si les fichiers de données proviennent d'une source externe, mon premier réflexe serait le XML Binding Wizard. Voici un court video tutorial, aussi.

Si vous générez le code XML à partir de votre propre source de données, vous pouvez le lier à un TClientDataSet et l'enregistrer au format XML. C'est pratique car vous pouvez recharger le XML et le traiter comme n'importe quel autre ensemble de données.

Si les données sont extrêmement volumineuses, la lecture d'un DOM en mémoire prendra beaucoup de temps. Je regarderais un processeur SAX. Ceci est un processus différent, et ne vous permet pas de naviguer dans un arbre de la même manière, mais c'est beaucoup plus rapide.

Si vous êtes OK pour manipuler le XML vous-même et vous n'avez pas affaire à de très gros fichiers XML, j'aime l'idée de Peter d'importer la bibliothèque MSXML et de l'utiliser directement. Cela fonctionne mieux que l'utilisation de TXMLDocument.

+1

Version haute qualité du didacticiel vidéo: http://codegearguru.com/index.php?option=com_content&task=view&id=71&Itemid=27 – Alister

+0

Hi Alister. Oui, j'aurais dû inclure un lien direct. –

3

Ceci est anecdotique, je ne sais pas ce qu'est une meilleure pratique serait:

j'utilisais que TXMLDocument pour un peu de temps, mais il est assez lourd et au moins la version Delphi 7 ne m'a pas laissé XPath, qui est à peu près la raison pour laquelle je voudrais utiliser XML en premier lieu.

J'ai importé la bibliothèque de types pour IXMLDomDocument2 et je l'utilise depuis. Je ne comprends vraiment pas comment tout cela fonctionne, mais c'est assez génial, et toute l'aide est dans le MSDN.

0

Les solutions de Bruce et Peter sont correctes, mais elles nécessitent que MSXML soit installé sur la machine client.

Je recommanderais DIXML, surtout si vous avez besoin de validation et/ou de transformation de ces fichiers XML.