2010-07-06 3 views
1

Je crée un fichier html basé sur xml et xsl avec XslCompiledTransform dans C# .net. Cela fonctionne parfaitement. Mais le xsl a aussi un fichier css inclus, et je me demande s'il y a un moyen d'obtenir ces styles css inclus dans le fichier html de sortie, de sorte qu'il peut être montré comme un fichier autonome (donc je ne ' Je dois copier le fichier css là où je veux voir le fichier).Comment inclure le fichier css dans une transaction XML?

Pour définir le style de chaque balise explicitement n'est pas une option non plus, malheureusement, et le fichier est bien sûr vraiment moche sans le CSS.

Toute aide serait grandement appréciée! :)

Répondre

1

Dans votre fichier html de sortie, ajoutez un lien de feuille de style dans la balise <head>.

<link rel="stylesheet" type="text/css" href="mystyle.aspx" /> 

Puis ajouter une page à votre projet appelé mystyle.aspx. Dans Page_Load de ce fichier, vous effectuez votre transformation xslt pour sortir uniquement la partie css. (Et supprimez la partie css de la transformation pour les pages html).

protected void Page_Load(object sender, EventArgs e) { 
    Response.Clear(); 
    Response.ContentType = "text/css"; 

    string css = // Do your xslt transformation here 

    Response.Write(css); 
    Response.End(); 
} 

Si le CSS est le même pour toutes les pages, vous voudrez peut-être ajouter un peu de mise en cache du code ci-dessus pour sauver faire la transformation à chaque fois.

Vous devrez peut-être utiliser certains paramètres pour pointer vers votre xml/xslt, mais vous n'avez fourni aucune information dans votre question à cet égard.

Questions connexes