2010-05-21 12 views
5

Ich weiß, dass dies eine vage offene Frage ist. Ich hoffe auf eine allgemeine Richtung.Was ist der beste Weg, um cXML-Dokumente in C# zu lesen und zu schreiben?

Ich muss CXML Ausstanzung zu einer ASP.NET C# Site/Anwendung hinzufügen. Dies ersetzt etwas, das ich vor Jahren in ColdFusion geschrieben habe.

Ich bin ein einigermaßen erfahrener C# Entwickler, aber ich habe nicht viel mit XML gemacht. Es scheint viele verschiedene Möglichkeiten für die Verarbeitung von XML in .NET zu geben.

Hier ist die offene Frage: Angenommen, ich habe ein XML-Dokument in irgendeiner Form, zB eine Datei oder eine Zeichenfolge, was ist der beste Weg, es in meinen Code zu lesen? Ich möchte die Daten bekommen und dann Datenbanken usw. abfragen. Die Größe des cXML-Dokuments und unsere Datenmengen sind leicht genug, so dass das Laden eines cXML-Dokuments in den Speicher kein Problem darstellt.

Sollte ich:

1) manuell Klassen bauen auf der Grundlage der dtd und verwenden, um die XML-Serializer?

2) Verwenden Sie ein Werkzeug, um Klassen zu generieren. Es gibt Beispiel-cXML-Dateien, die von Ariba.com heruntergeladen werden können. Ich versuchte xsd.exe, um ein xsd und dann xsd.exe/c zu generieren, um Klassen zu generieren. Wenn ich versuche, zu deserialisieren, bekomme ich Fehler, weil es "Verwirrung" darüber gibt, ob einige Elemente einzelne Werte oder Arrays sein sollten.

Ich habe versucht, das CodeXS-Online-Tool, aber das gibt Fehler in seinem Protokoll und Fehler, wenn ich versuche, ein Beispieldokument deserialisieren.

2) Erstellen Sie ein Dataset und ReadXml()?

3) Erstellen Sie einen typisierten Datensatz und ReadXml()?

4) Verwenden Sie Linq zu XML. Ich benutze Linq oft zu Objekten, so dass ich mit Linq im Allgemeinen vertraut bin, aber ich kämpfe um zu sehen, was es mir in dieser Situation gibt.

5) Einige andere Mittel.

Ich denke, ich muss mein Verständnis von XML im Allgemeinen verbessern, aber trotzdem ... vermisse ich eine offensichtliche Möglichkeit, dies zu tun? In der alten ColdFusion-Site fand ich eine freie Komponente ("tag"), die im Grunde jedes Schema ignorierte und das XML in eine "Struktur" las, die im Wesentlichen eine Reihe verschachtelter Hash-Tabellen darstellt, die dann einfach im Code zu lesen waren. Das war wahrscheinlich ziemlich schlampig, aber es hat funktioniert.

Ich muss auch XML-Dateien von meinen C# -Objekten generieren. Vielleicht wird Linq zu XML dafür gut sein. Ich könnte mit einem Standard "Vorlage" -Dokument beginnen und es vor dem Speichern manipulieren.

Danke für alle Hinweise ...

+0

Nicht ein dupe persay, aber schauen Sie hier: http://StackOverflow.com/Questions/444116/what-are-the-best-Functions-Practices-and--Techniques-to-read-write- xml-with –

Antwort

1

Wenn Sie beliebige XML in einem exakten Format generieren müssen, sollten Sie es manuell erstellen LINQ-to-XML.

+0

Danke. Linq to XML war definitiv der einfachste Weg. – tetranz

+0

Ja; es ist normalerweise. :) – SLaks

Verwandte Themen