Avatar billede claus437 Nybegynder
08. november 2009 - 11:42 Der er 6 kommentarer og
1 løsning

link xml fra xsl

Hej Eksperter

man kan linke et xsl sheet fra et xml dokument med

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xml" href="test.xsl"?>

<catalog>
  <cd>
    <title>Empire Burlesque</title>

men hvordan gør man det omvendt, altså angir hvilket xml dokument der skal bruges i xsl style sheetet

med venlig hilsen
claus
Avatar billede arne_v Ekspert
08. november 2009 - 14:02 #1
Det kan man ikke.

Det er der både logiske grunde til - det er ikke god kode stil at lave konverterings kode som kun kan konvertere noget ganske bestemt - og praktiske grunde - normalt skal den samme XSL bruges på mange XML filer.
Avatar billede claus437 Nybegynder
08. november 2009 - 14:32 #2
er du sikker?, er næsten 100% sikker på at jeg så det på w3c engang men kan ikke finde det nu, eller nogen som helst andre steder for den sags skyld - så er bange for du har ret.

Du har ret i at normalt er det den anden vej rundt, men i dette tilfælde fetcher jeg et færdigt xml dokument som jeg ikke har kontrol over, og skal havde det vist på forskellige måder.

så den oplagte løsning ville være at lave 3 stylesheets som linkede til det samme xml dokument.

Hilsen claus
Avatar billede arne_v Ekspert
08. november 2009 - 14:55 #3
Man skal aldrig sige aldrig. Men jeg har aldrig set det.

Jeg gætter på at hvis det kan lade sig gøre, så må det være noget grumset noget med callouts fra XSLT til et programmerings sprog.

Normalt tror jeg at man ville løse den opgave med at lave noget der henter + applier en bestemt XSLT + viser.

program xml-fil xslt-fil

er meget nem at lave i de fleste programmering sprog.
Avatar billede claus437 Nybegynder
08. november 2009 - 15:04 #4
men ville helst undgå at lave et mellem led, og ville foretrække at man bare kunne åbne xsl filen direkte i en browser.

så'en som jeg husker den var, var det noget ala <?xml...>

hilsen claus
Avatar billede arne_v Ekspert
08. november 2009 - 23:39 #5
Nu har jeg googlet lidt.

Og jeg har fundet noget som smager af fugl:

<xsl:apply-templates select="document('foobar.xml')"/>
Avatar billede claus437 Nybegynder
09. november 2009 - 08:10 #6
og sådan en smager jo godt :o),

kombineret med et embeded style sheet og det virker perfekt...

tak for hintet, -- nogen ide om hvordan man giver point?

med venlig hilsen claus

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="#stylesheet"?>

<!DOCTYPE stylesheet [
<!ATTLIST xsl:stylesheet
  id    ID    #REQUIRED>
]>

<xsl:stylesheet id="stylesheet"
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns="http://www.wooddog.org/test">

    <xsl:import href="catalog.xsl"/>
    <xsl:output method="xml" media-type="text/xml" cdata-section-elements="content"/>

    <xsl:template match="xsl:stylesheet">
        <update>
            <title>hello world</title>
            <content><xsl:apply-templates select="document('catalog.xml')"/></content>
        </update>
    </xsl:template>
</xsl:stylesheet>
Avatar billede arne_v Ekspert
09. november 2009 - 14:55 #7
Jeg smidet et svar som du kan acceptere.
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