2009-07-13 11 views
0

J'ai cette exigence quelque peu intéressante.XSLT et XML Question

Généralement, vous utilisez XSLT pour transformer un document XML. Le HTML transformé est visible dans un navigateur web, cela fonctionne très bien. Je suppose également que le navigateur gère la transformation en mémoire, car si vous affichez la source de page d'un document XML avec XSLT, vous ne voyez pas html, seulement xml.

Ce que je voudrais faire est le suivant.

utilisant C#

  1. saisir un fichier xml du fileSystem .... charge dans un objet cadre
  2. joindre une feuille de style XSLT
  3. sortie le dos HTML rendu dans un fichier html sur le système de fichiers.

Est-ce possible?

Je ne m'attends pas à une réponse complète sur l'ensemble de la solution. Juste une poussée dans la bonne direction serait génial :) merci d'avance.

Répondre

5

Vous pouvez utiliser System.Xml.Xsl pour faire XSLT en C#.

Il y a un article ici: XML transformation using Xslt in C# qui explique comment - voici le cœur de celui-ci:

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); 

(Modifier: Note à @John: ce code illustre l'idée de base, il ne prétend pas. être la qualité de la production.)

+0

J'ai marqué votre réponse comme correcte, parce que vous avez posté un meilleur article. –

+0

Veuillez ajouter un bloc using pour le rédacteur de texte, et peut-être utiliser XmlWriter.Create? –

+0

@Richie: un exemple de code est copié et collé, et les gens se plaignent et disent, "mais Richie Hindle a dit que c'était ok". Par conséquent, -1. –

0

si le HTML est un invaild pour mat xml?

il semble que nous ne pouvons pas utiliser xslt?

Des commentaires?

+0

google "beautifulsoup", "htmltidy", et le "html agility pack" – annakata

+0

MERCI, ANNAKATA – ariso