Quelle est la meilleure façon de lire et documents XML d'écriture en C #?

StackOverflow https://stackoverflow.com/questions/2884257

  •  04-10-2019
  •  | 
  •  

Question

Je sais que cela est une question vague ouverte ended. J'espère obtenir une direction générale.

Je dois ajouter cXML PunchOut à un ASP.NET C # site / application. Ce remplace quelque chose que j'ai écrit il y a quelques années dans ColdFusion.

Je suis un développeur C # raisonnablement expérimenté, mais je n'ai pas fait beaucoup avec XML. Il semble y avoir beaucoup d'options différentes pour le traitement de XML dans .NET.

Voici la question ouverte: En supposant que j'ai un document XML sous une forme, par exemple un fichier ou d'une chaîne, quelle est la meilleure façon de le lire dans mon code? Je veux obtenir les données et les bases de données, etc. La requête taille du document cXML et nos volumes de trafic sont assez facilement petit pour que le chargement du document cXML dans la mémoire n'est pas un problème.

Devrais-je:

1) des cours de création manuelle basée sur la DTD et utiliser le sérialiseur XML?

2) Utilisez un outil pour générer des classes. Il y a des exemples de fichiers cXML téléchargeables à partir Ariba.com. Je xsd.exe essayé de générer un xsd puis xsd.exe / c pour générer des classes. Lorsque je tente de désérialiser je reçois des erreurs, car il semble y avoir « confusion » autour si certains éléments doivent être des valeurs uniques ou des tableaux.

J'ai essayé le CodeXS outil en ligne, mais qui donne des erreurs dans son journal et des erreurs si je tente de désérialiser un document échantillon.

2) Création d'un ensemble de données et ReadXml ()?

3) Créer un DataSet typé et ReadXml ()?

4) Utilisez LINQ to XML. J'utilise souvent LINQ to Objects, donc je suis familier avec Linq en général, mais je me bats pour voir ce qu'il me donne dans cette situation.

5) d'autres moyens.

Je suppose que je dois améliorer ma compréhension de XML en général, mais quand même ... suis-je manque une certaine façon évidente de le faire? Dans l'ancien site ColdFusion j'ai trouvé un composant gratuit ( « tag ») qui essentiellement ignoré tout schéma et lire le XML dans une « structure » qui est essentiellement une série de tables de hachage imbriquées, ce qui était alors facile à lire dans le code. C'était probablement tout à fait bâclée, mais cela a fonctionné.

Je dois aussi générer des fichiers XML de mes objets C #. Peut-être que LINQ to XML sera bon pour cela. Je pourrais commencer par un document par défaut « modèle » et de le manipuler avant d'enregistrer.

Merci pour tous les pointeurs ...

Était-ce utile?

La solution

Si vous avez besoin pour générer XML arbitraire dans un format exact, vous devez générer manuellement à l'aide LINQ à XML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top