Avatar billede brian0905 Nybegynder
22. juli 2005 - 09:11 Der er 5 kommentarer og
1 løsning

Kan jeg eksekvere C# kode fra mit stylesheet?

Jeg skal have formatteret et XML dokument, der er lavet således at hvis jeg møder et <list> element i min xml fil skal jeg eksempelvis lave en liste af fonte på serveren og vise dem i en dropdown boks. Kan jeg eksekvere C# kode direkte i mit XSLT, således jeg kan løbe fonte igennem når jeg møder dette element? eller skal jeg en anden vej rundt?
Avatar billede nielle Nybegynder
22. juli 2005 - 10:35 #1
Du kan – mig bekendt – ikke eksekvere ekstern kode fra et XSLT stylesheet.

Hvis du laver XSLT-transformationen serverside i stefet for clientside (altså i browseren) så har du dog mulighed for at loade bøde XML- og XSLT-filer i et C#-program og så manipulere filerne yderligere der.
Avatar billede brian0905 Nybegynder
22. juli 2005 - 10:42 #2
Jeg ved jeg kan eksekvere C# fra XSLT, spørgsmålet var måske forkert stillet, jeg ved ikke helt hvor meget jeg kan gøre, og om jeg kan bruge objekter mv (som FontFamily i mit eksempel) eller hvad?... jeg må hellere forsøge mig frem:

Her er et eksempel på hvordan man gør det med C# i XSLT:

Her laves metoden der senere kan bruges, den konverterer /r/n til <br>:

<msxsl:script language="C#" implements-prefix="user">
    <![CDATA[
    public string crlftobr(string text){
      return text.Replace("\r\n","<br>");
    }
      ]]>

her kalder jeg den, længere nede i mit stylesheet (TSK_longtext er min xml node):

<xsl:value-of select="user:crlftobr(TSK_longtext)" disable-output-escaping="yes" />
Avatar billede softspot Forsker
22. juli 2005 - 11:04 #3
Du kan sagtens lave extensions som du refererer til i XSLT, hvilket giver uanede muligheder (næsten) for hvad man kan lave :)
Avatar billede softspot Forsker
22. juli 2005 - 11:05 #4
...men igen, det er jo nok mest normalt at benytte serverside i en webapp... :)
Avatar billede brian0905 Nybegynder
22. juli 2005 - 11:06 #5
softspot -> Det eksempel jeg har vist, er det det der kaldes en extension? eller er det noget andet du taler om?
Avatar billede softspot Forsker
22. juli 2005 - 11:21 #6
hmmm... jeg ved ikke om det du har lavet officielt kaldes en extension, men det er ikke det jeg tænker på. Man kan lave en .NET-klasse som kan refereres fra et XSLT.

Jeg har lige Googlet et par links til dig så kan læse lidt mere om hvilke muligheder man har:

http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=64
http://msdn.microsoft.com/msdnmag/issues/02/03/xml/
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXsltArgumentListForStylesheetParametersExtensionObjects.asp
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester