7 Stimmen

Was ist der beste Weg, um cXML-Dokumente in C# zu lesen und zu schreiben?

Ich weiß, dass dies eine vage offene Frage ist. Ich hoffe, etwas allgemeine Richtung zu erhalten.

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

Ich bin ein ziemlich erfahrener C#-Entwickler, aber ich habe nicht viel mit XML gemacht. Es scheint viele verschiedene Möglichkeiten zu geben, XML in .NET zu verarbeiten.

Hier ist die offene Frage: Angenommen, ich habe ein XML-Dokument in irgendeiner Form, z.B. eine Datei oder einen String, wie kann ich es am besten in meinen Code einlesen? Ich möchte die Daten abrufen und dann Datenbankabfragen usw. stellen. Das cXML-Dokument ist klein genug und unser Traffic-Volumen ist leicht genug, so dass das Laden eines cXML-Dokuments in den Speicher kein Problem darstellt.

Sollte ich:

1) Manuell Klassen erstellen, die auf dem DTD basieren und den XML-Serializer verwenden?

2) Ein Tool verwenden, um Klassen zu generieren. Es gibt Beispieldateien für cXML, die von Ariba.com heruntergeladen werden können. Ich habe xsd.exe ausprobiert, um ein XSD zu generieren, und dann xsd.exe /c, um Klassen zu generieren. Wenn ich versuche, zu deserialisieren, erhalte ich Fehler, weil es "Verwirrung" darüber zu geben scheint, ob einige Elemente Einzelwerte oder Arrays sein sollen.

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

2) Ein Dataset erstellen und ReadXml()?

3) Ein typisiertes Dataset erstellen und ReadXml()?

4) Linq to XML verwenden. Ich verwende oft Linq to Objects, sodass ich mit Linq im Allgemeinen vertraut bin, aber ich habe Schwierigkeiten zu erkennen, was es mir in dieser Situation gibt.

5) Eine andere Methode verwenden.

Ich nehme an, ich muss mein Verständnis von XML im Allgemeinen verbessern, aber selbst dann ... übersehe ich eine offensichtliche Möglichkeit, dies zu tun? Auf der alten ColdFusion-Website habe ich eine kostenlose Komponente ("Tag") gefunden, die im Grunde jede Schema ignorierte und das XML in eine "Struktur" einlas, die im Wesentlichen aus einer Reihe von verschachtelten Hash-Tabellen bestand, die dann einfach im Code zu lesen war. Das war wahrscheinlich ziemlich schlampig, aber es hat funktioniert.

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

Danke für jegliche Hinweise ...

1voto

SLaks Punkte 832502

Wenn Sie beliebiges XML in einem bestimmten Format generieren müssen, sollten Sie es manuell mit LINQ-to-XML generieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X