C # Wie führe ich eine Live-XSLT-Transformation für ein In-Memory-Objekt durch?

8

Ich habe eine Funktion, die 2 Parameter benötigt: 1 = XML-Datei, 2 = XSLT-Datei, führt dann eine Umwandlung durch und gibt das resultierende HTML zurück.

Hier ist die Funktion:

%Vor%

Ich möchte die Funktion ändern, um keine Datei für das XML, sondern nur ein Objekt zu akzeptieren. Das Objekt ist genau mit dem xslt kompatibel, wenn es in eine Datei serialisiert wurde. Aber ich möchte es nicht zuerst in eine Datei serialisieren müssen.

Zur Erinnerung: Behalte das xslt aus einer Datei, aber die xml-Eingabe sollte ein Objekt übergeben und ich möchte das xml ohne irgendeine Dateisysteminteraktion erzeugen.

    
JL. 30.03.2010, 20:50
quelle

4 Antworten

9

Sie können das Objekt in eine Zeichenfolge serialisieren, die Zeichenfolge in ein XmlDocument laden und die Umwandlung ausführen:

%Vor%     
Thomas Levesque 30.03.2010, 21:15
quelle
3

Hier ist eine Funktion, die ein Objekt in ein XDocument verwandelt (Sie können es für XmlDocument ändern, wenn Sie XDocument noch nicht benutzen). Natürlich werden Ausnahmen ausgelöst, wenn das Objekt nicht serialisiert werden kann.

%Vor%

und hier ist der für XmlDocument

%Vor%     
juharr 30.03.2010 21:13
quelle
1

Nicht getestet, aber Sie können XPathDocument verwenden, um einen Stream zu erstellen, und da XPathDocument IXPathNavigable implementiert, kann es für Transformationen verwendet werden:

%Vor%     
bryanjonker 30.03.2010 21:14
quelle
0

Sehen Sie sich diesen Artikel an, in dem beschrieben wird, wie Sie ein XPathNavigator erstellen, mit dem Sie navigieren können Eigenschaften eines Objektdiagramms, das eine ziemlich leistungsfähige Kombination von XPath und XSLT ist.

    
dkackman 30.03.2010 22:03
quelle

Tags und Links