2009-07-13 11 views
0

Ich habe diese eine interessante Anforderung.XSLT und XML Frage

Normalerweise verwenden Sie XSLT, um ein XML-Dokument zu transformieren. Das umgewandelte HTML ist in einem Webbrowser sichtbar, das funktioniert einfach super. Ich vermute auch, dass der Browser die Transformation im Speicher behandelt, denn wenn Sie die Seitenquelle eines XML-Dokuments mit XSLT anzeigen, sehen Sie nicht HTML, nur XML.

Was ich möchte, ist das Folgende.

mit C#

  1. greift eine XML-Datei aus dem Dateisystem .... es Laden in einem gewissen Rahmen Objekt
  2. einem XSLT-Stylesheet
  3. Ausgabe der gerenderte HTML zurück in eine HTML-Datei auf anhänge das Dateisystem.

Ist das möglich?

Ich erwarte keine vollständige Antwort auf die gesamte Lösung. Nur ein Schub in die richtige Richtung wäre toll :) Danke im Voraus.

Antwort

5

Sie können System.Xml.Xsl für XSLT in C# verwenden.

Es ist ein Artikel hier: XML transformation using Xslt in C#, die erklärt, wie - hier ist der Kern davon:

XPathDocument myXPathDoc = new XPathDocument(<xml file path>); 
XslTransform myXslTrans = new XslTransform(); 
myXslTrans.Load(<xsl file path>); 
XmlTextWriter myWriter = new XmlTextWriter("result.html", null); 
myXslTrans.Transform(myXPathDoc, null, myWriter); 

(bearbeiten: Hinweis @John zu: dass Code, der die Grundidee illustriert Es erhebt nicht den Anspruch auf. seine Produktionsqualität.)

+0

Ich habe Ihre Antwort als richtig markiert, weil Sie einen besseren Artikel gepostet haben. –

+0

Fügen Sie einen Verwendungsblock für den Texter hinzu und vielleicht XmlWriter.Create? –

+0

@Richie: Beispiel-Code wird kopiert und eingefügt, und die Leute winseln und sagen, "aber Richie Hindle sagte, es sei in Ordnung". Also, -1. –

0

was, wenn die hTML ist ein invaild für Mattexml?

sieht es so aus, als könnten wir xslt nicht benutzen?

Irgendwelche Rückmeldungen?

+0

google "beesesoup", "htmltidy", und die "html Agilität Pack" – annakata

+0

DANKE, ANNAKATA – ariso