Avatar billede bubbi Nybegynder
05. marts 2003 - 13:02 Der er 11 kommentarer

XSL vs Servlets vs Jarkarta

Hejsa

Efter at have bøvlet lidt med andre det er det nu lykkes mig at lave en servlet der tager information fra en database og opbygger et XML for at vise det fint på skærmen. Nu er der bare det at XML bare som XML ikke er det meste ophidsende at se på såderfor vil jeg selvfølgelig til at knytte et XSL til. Jeg har også lavet XSL'et og knyttet det til den dynamiske genereret XML. Men den vil ikke bruge det nu :o( JEg ved ikkeo m det er fordi jeg har det liggende et forkert sted (jeg har XSL'et til at ligge i samme bibliotek som jeg har servletten til at ligge)

Nogle der kan hjælpe mig derude?

MvH
Jesper
Avatar billede arne_v Ekspert
05. marts 2003 - 13:11 #1
Skal XML+XSL->whatever laves på client eller på server ?

Hvis client så:
  - skal XSL kunne hentes med HTTP
  - skal XML have en referenace til XSL

Hvis server så:
  - skal din servlet explicit lave transformeringen
Avatar billede bubbi Nybegynder
05. marts 2003 - 13:20 #2
"Tror" (er det ikke godt at starte et svar med det, jeg burde da vide det) men at transformeringen skal laves på klient siden.
Den XML min servlet laver lige for tiden ser ud som følgende:
--------------------
<?xml version='1.0' encoding='ISO-8859-1'?>
<?xml-stylesheet type='text/xsl' href='skabelon0.xsl'?>
<indlaeg>
<ID>2</ID>
<Overskrift>Marsvin fra det ydre ruym invadere Venus</Overskrift>
<Beskrivelse>Men de er da meget søde, lige før de spiser din Kat!!!!</Beskrivelse>
<Skabelon>0</Skabelon>
<Dato>2002-12-23 00:00:00</Dato>
<Offentligt>0</Offentligt>
<Forfatter>Jesper</Forfatter>
<Antalvisninger>0</Antalvisninger>
<tekstpost>
<tekstID>11</tekstID>
<teksten>Og det skulle man jo ikke tro skulle man.
dar dar dar dam di dam
dar dar dar dam di dam
dar dar dar dam di damdar dar dar dam di dam
dar dar dar dam di dam  dar dar dar dam di dam
dar dar dar dam di damdar dar dar dam di damdar dar dar dam di damdar dar dar dam di damdar dar dar dam di dam
Og det har vi jo ikke hørt før?????</teksten>
</tekstpost>
</indlaeg>
----------------------

Min skabelon0.xsl ser ud som følgende:
----------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
    <xsl:for-each select="indlaeg">
      <h1><xsl:value-of select="Overskrift"/></h1>
      <i> af:<xsl:value-of select="Forfatter"/> den:<xsl:value-of select="Dato"/> </i><br><br>
    <br><br>
    <b>
    <xsl:value-of select="Beskrivelse"/>
    </b>
    <br><br>
   
    <xsl:value-of select="teksten"/>
   
    </xsl:for-each>
  </body>
  </html>
</xsl:template></xsl:transform>
-----------------------

Hvor skal skabelon0.xml ligge for at kunne blive brugt på klientsiden???

MvH
Jesper
Avatar billede arne_v Ekspert
05. marts 2003 - 13:30 #3
Tror er godt nok. Jeg tror også en masse !  :-)

skabelon0.xsl skal ligge så den kan hentes med en
normal HTTP request.

Med Tomcat kan du ligge den i:

webapps/dinapp/style/skabelon.xsl

så kan den hentes med http://localhost:8080/dinapp/style/skabelon0.xsl

og en:
  href='/dinapp/style/skabelon0.xsl'

må gøre at browseren kigger det rigtige sted.

Hvis:
  href='skabelon0.xsl'
skal virke så skal xml'en have en URL af formen
http://localhost:8080/dinapp/xmlgenerator og jeg tror godt
at det kan være lidt tricky at få til at virke.
Avatar billede bubbi Nybegynder
05. marts 2003 - 15:04 #4
Det er ikke for at brokke mig med det fungere ikke :o(
Jeg har mit xsl liggende et sted hvor jeg kan få det vist på følgende link:

http://all-pc01:8080/JespersTests/Skabelon0.xsl

Min servlet bruger følgende linie til at sige der skal bruges et XSL:

out.println("<?xml-stylesheet type='text/xsl' href=<b>'JespersTests/Skabelon0.xsl'<b>?>");

Men det fungere stadig ikke :o(

/J
Avatar billede arne_v Ekspert
05. marts 2003 - 15:06 #5
Prøv med:

out.println("<?xml-stylesheet type='text/xsl' href=<b>'/JespersTests/Skabelon0.xsl'<b>?>");

absolut path d.v.s. startende med /)
Avatar billede arne_v Ekspert
05. marts 2003 - 15:08 #6
PS: jeg formoder at de <b> er noget copy-paste her på Eksperten.
Avatar billede bubbi Nybegynder
06. marts 2003 - 00:03 #7
Jeg vil prøve det first thing in the morning når jeg sidder med projektet igen. Og jo de <b> tags var bare med der er tilpas ny her og endnu ikke har fattet man ikke kan bruge tags på den måde :oS
Avatar billede bubbi Nybegynder
06. marts 2003 - 10:03 #8
Hmmm har prøvet med "/" det var ikek den tore succes, så prøvede jeg med en abselut sti "http://all-pc01:8080/JespersTests/Skabelon0.xsl" det spiser den godt nok og viser så XML'et ved hjælp af det XSL nu er det bare ikke en holdbar løsning at skulle bruge absolutte stier :o/ Nogle ide'er???

Det må kort sagt have et eller andet at gøre med at det ikke bliver vist eller bruget der hvor det ligger. Vi prøvede nemlig at putte et billed direkte ind i XSL'et der lå i samme dir som XSL'et men det ville den heller ikke vise medmindre den fik en absolut sti.

Nogle ide'er????
MvH
Jesper
Avatar billede arne_v Ekspert
13. marts 2003 - 00:46 #9
Undskyld det har taget lidt tid at vende tilbage.

Men Eksperten havde jo et lille database problem, så jeg kunne ikke
se dit indlæg i en hel uge.
Avatar billede arne_v Ekspert
13. marts 2003 - 00:50 #10
Men det må være muligt at få det til at virke.

Hvis du ligger din XSL i WEB-INF directoriet i din
applikation og hvis din XML genererende servlet er
mappet til /navn, så bør du kunne hente din servlet med
http://whereever:8080/appnavn/servletnavn og din XSL bør
kunne hentes med http://whereever:8080/appnavn/skabelon0.xsl
og hvis HTML guderne er med dig så burde en HREF="skabelon0.xsl"
virke.
Avatar billede arne_v Ekspert
19. marts 2003 - 20:09 #11
Tid at lukke spørgsmålet ?
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