2010-12-01 18 views
1

J'ai une bibliothèque de documents nommée "bibliothèque xsl" avec un tas de xsl ... et j'ai besoin de lire un fichier (n'importe qui) pour pouvoir l'utiliser pour transformer un fichier XML qui rend une partie web ... la disposition d'une partie Web est déterminée par le xsl ... comment puis-je le faire?Lecture programmée à partir de la bibliothèque

Remarques: Enviroment -> Sharepoint 2007

+0

Besoin de plus d'informations. De quelle manière ces 'xsl' doivent-ils être récupérés (sont-ils des propriétés, une seule propriété de type array)? Vous pouvez également fournir un exemple de code que vous utilisez actuellement pour utiliser ces bibliothèques. –

Répondre

2

Il semble donc que vous avez besoin de code côté serveur:

SPFile xslFile = SPContext.Current.Web.GetFile("/myWeb/myXlsLibrary/myXsl.xsl"); 
Stream xslStream = xslFile.OpenBinaryStream(); 

Ensuite code similaire à celui fourni par Vlad ci-dessus pour faire la transformation . Pour plus d'informations sur les fonctions utilisées, voir MSDN (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.getfile.aspx, http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.openbinarystream.aspx).

0
XslCompiledTransform proc = new XslCompiledTransform(); 

proc.Load(XmlReader.Create(new StringReader(stringWithXsltStylesheetCode))); 

XmlDocument result = new XmlDocument(); 
using (XmlWriter xw = result.CreateNavigator().AppendChild()) 
{ 
    proc.Transform(inputXmlDocument, null, xw); 
    xw.Close(); 
} 
+0

le problème ici n'est pas comment transformer le xml ... mais comment lire le fichier de la bibliothèque de documents sans le télécharger ... – Leonardo

+0

"lire ... sans télécharger" - que voulez-vous dire? Avez-vous besoin de le faire sur le serveur SharePoint lui-même (à l'aide du modèle d'objet SharePoint) ou à partir d'un autre ordinateur/navigateur? –

+0

@Alexei Levenkov le webpart a besoin d'un xsl pour le style lui-même ... le xsl est pointé dans la config (ce n'est pas toujours le même) et il peut être trouvé (le xsl) dans la "bibliothèque xsl" ... webpart pour lire le xsl pointu de la bibliothèque et se transformer ... – Leonardo