3 Stimmen

Wie transformiert man ein XMLDokument mit XSLT in C# 2.0

Ich verwende C# 2.0 und ich habe folgenden Code erhalten:

  XmlDocument doc = new XmlDocument();
  doc.LoadXml(GetListOfPagesInStructureGroup(m_Page.Id));

In oben lade ich meine XMLDocument mit Methode, die als Zeichenfolge zurückgibt, jetzt nach einigen Verarbeitung auf oben xmldocument möchte ich XSLT auf die oben XMLDocument anwenden, um mein gewünschtes Ergebnis nach XSLT zu rendern und schließlich wird meine Funktion ganze gerenderte XML als Zeichenfolge zurückgeben

Bitte vorschlagen!!!

8voto

Manoj Singh Punkte 7329

Bitte schlagen Sie die folgende Lösung vor:

        XslCompiledTransform xslTransform = new XslCompiledTransform();
        StringWriter writer = new StringWriter();          
        xslTransform.Load("xslt/RenderDestinationTabXML.xslt");
        xslTransform.Transform(doc.CreateNavigator(),null, writer);
        return writer.ToString();

Danke!

2voto

Petar Ivanov Punkte 89412

Versuchen Sie die XslCompiledTransform Klasse.

1voto

Im Internet gibt es zahlreiche Beispiele für die Umwandlung einer XML-Datei in ein anderes Format mit Hilfe einer XSLT-Datei, wie das folgende:

XslTransform myXslTransform = new XslTransform();
XsltSettings myXsltSettings = new XsltSettings();
myXsltSettings.EnableDocumentFunction = true;
myXslTransform.Load("transform.xsl");
myXslTransform.Transform("input.xml", "output.xml");

Dies ist jedoch nur eine teilweise Antwort, ich möchte in der Lage sein, die XML-Eingabedaten aus einem Webformular zu erhalten und verwenden, dass als die Eingabedaten anstelle einer '.xml' Datei, aber haben keine konkreten Beispiele gefunden, auch mit Visual Studio kann ich die verschiedenen Konstruktoren und Methoden sehen, die verfügbar sind, und ich bin nicht sehen, eine, die XML-Daten in einem String-Format akzeptiert, so wäre es sehr hilfreich, wenn jemand ein Beispiel für das bereitstellen könnte.

0voto

Marc Gravell Punkte 970173

Re " Ich möchte, dass mein XMlDocument aktualisiert wird " - so funktioniert es nicht; die Ausgabe ist von der Eingabe getrennt. Wenn das wichtig ist, verwenden Sie einfach einen StringWriter oder MemoryStream als Ziel, dann laden Sie die XmlDocument aus der generierten Ausgabe.

Bedenken Sie insbesondere, dass die Ausgabe einer xslt-Transformation no müssen xml sein, und außerdem: die xslt verwendet höchstwahrscheinlich den Knotenbaum während der Operation; eine Änderung der Struktur an Ort und Stelle würde das sehr schwierig machen.

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