lørdag, januar 23, 2021

XSLT Variable ??

Daily Rush Debat Programmering XSLT Variable ??

  • Forfatter
    Emne
  • #0

    Buddy123
    Bruger
    19 indlæg
    Offline

    Min Xmlfil, det er den der ligger inde under XSLT på w3schools


    Empire Burlesque
    Bob Dylan
    USA
    Columbia 10.90 1985

    min xslt

    < ?xml version="1.0" encoding="UTF-8" ?>
    http://www.w3.org/1999/XSL/Transform“>






    <br /> <xsl:value -of select="$varTest"></xsl:value> <br />







    Ved godt indrykning er lidt dårlig… håber det kan læses alligevel…

    Nå men problemet er at jeg ikke får selected en title.
    Så mit spørgsmål er om det ikke er meningen at var’ne skal bruges på denne måde???

Viser 4 kommentarer - 1 til 4 (af 4 i alt)
  • Forfatter
    Kommentarer
  • #1

    Munter
    Bruger
    2.473 indlæg
    Offline

    Undgå for-each, brug i stedet flere templates. Når xslt understøtter den slags matching kan det bedst betale sig at have de enkelte nodes behandling splittet op i enkelte templates.

    Derudover bør du sætte den variabel for hver iteration over cd, da title ikke er konstant.

    Grunden til at du ikke får noget indhold i din variabel er en falsk xpath til title. din xpath til title fra hvor du står der bør være “cd/title”.

    "Everybody wants to laugh but nobody wants to cry, Everybody wants to go to heaven... but nobody wants to die!"--Larry Howard

    #2

    Buddy123
    Bruger
    19 indlæg
    Offline

    Jeg kan godt følge dig det med templates.
    jeg har mange cd’er i min xml derfor loopet
    http://www.w3schools.com/xsl/cdcatalog.xml

    “Derudover bør du sætte den variabel for hver iteration over cd, da title ikke er konstant.” hvis du bare mener hvor jeg angiver var’en så forstår jeg dig også godt….

    “Grunden til at du ikke får noget indhold i din variabel er en falsk xpath til title. din xpath til title fra hvor du står der bør være “cd/title”. ”
    Det kan jeg dog stadigvæk ikke få til at virke…

    #3

    Munter
    Bruger
    2.473 indlæg
    Offline

    Jeg tror ikke du har forstået konceptet bag templates. At du har mange cd nodes kræver på ingen måde looping. du skriver bare apply-templates.

    I øvrigt er der ingen grund til brug af variabler i så simpel en transformering.

    Dite stylesheet kan faktisk være så simpelt som:

    <xsl:template match="/">
    <xsl:apply-templates />
    </xsl:template>

    <xsl:template match="catalog/cd">
    <title><xsl:value-of select="title" /></title>
    <artist><xsl:value-of select="artist" /></artist>
    </xsl:template>

    Og faktisk kunne du helt undlade at matche på / forudsat at du ikke har noget data mellem / og de nodes du behandler.

    "Everybody wants to laugh but nobody wants to cry, Everybody wants to go to heaven... but nobody wants to die!"--Larry Howard

    #4

    Buddy123
    Bruger
    19 indlæg
    Offline

    Jeg ved godt at der ikke er nogen grund til at bruge min variable i en så simple en, lavede det her eksempel så det var lettere at overskue.

    Det er første gang jeg arbejder med XSLT, men har lidt fået gennemskuet det template noget. Kan jeg kun give dig ret i… er noget bedre en loops..

    Men håber stadigvæk du kan fortælle mig hvordan jeg skal angive min var så jeg kan bruge den til det jeg skal lave

Viser 4 kommentarer - 1 til 4 (af 4 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.