xsl parse problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • xsl parse problem

    moin leute,

    ich bekomme ein xml-file mit folgendem knoten:

    Code:
    <parameters aufbereitung="Tabelle">
    <parameter name="geschlecht">maenner</parameter>
    <parameter name="sportart">fussball</parameter>
    <parameter name="spielbetrieb">1. Bundesliga</parameter>
    </parameters>
    ich breche mir gerade einen ab, wie ich in meinem xsl-script die verschiedenen values (maenner etc.) in variablen bekomme.... HILFE

    Code:
    <xsl:for-each select="/tabelle/parameters">
               <xsl:variable name="Geschlecht"><xsl:value-of select="parameter"/></xsl:variable>
               <xsl:variable name="Sportart"><xsl:value-of select="parameter"/></xsl:variable>
               <xsl:variable name="Spielbetrieb"><xsl:value-of select="parameter"/></xsl:variable>
               <xsl:value-of select="concat($Art,' - ',$Geschlecht,' - ',$Sportart,' - ',$Spielbetrieb)"/>
    
    </xsl:for-each>
    Ausgabe: Tabelle - maenner - maenner - maenner

    **********
    arkos
    **********

  • #2
    http://www.w3.org/TR/xslt#attribute-value-templates

    Kommentar


    • #3
      ...

      danke für deine antwort penizillin,

      den ansatz hatte ich auch schon. ich weiß nun langsam nicht mehr, ob ich einfach zu blöd bin (antworten darauf bitte aussparen )

      ich bekomme mit der methode mit dem xml höchsten mit @name
      einmalig "geschlecht" rausgelesen.

      kann es sein, dass die aufbereitung des xml-files fürn mors ist? wäre es nicht richtig, dass xml so zu gestalten?:

      Code:
      <parameters aufbereitung="Tabelle">
      <parameter geschlecht="manner"/>
      <parameter sportart="fussball"/>
      <parameter spielbetrieb="1. Bundesliga"/>
      </parameters>
      so müsste ich doch mit @geschlecht, @sportart etc. alles sauber rauskriegen.

      da ich aber nicht weiß, ob ich den zulieferer zur änderung bewegen kann, wäre ich für einen lösungsansatz zum ersten xml-file dankbar.

      zeigt was ihr könnt
      **********
      arkos
      **********

      Kommentar


      • #4
        hm...

        xml:
        PHP-Code:
        <?xml version="1.0" encoding="UTF-8"?>
        <parameters aufbereitung="Tabelle">
            <parameter name="geschlecht">maenner</parameter>
            <parameter name="sportart">fussball</parameter>
            <parameter name="spielbetrieb">1. Bundesliga</parameter>
        </parameters>
        xsl:
        PHP-Code:
        <?xml version="1.0" encoding="utf-8"?>
        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output
          method="html" 
          indent="yes" 
          encoding="utf-8" 
          doctype-public = "-//W3C//DTD XHTML 1.0 Strict//EN"
          doctype-system = "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" />

        <xsl:for-each select="/tabelle/parameters">
           <xsl:variable name="Geschlecht"><xsl:value-of select="parameter"/></xsl:variable>
           <xsl:variable name="Sportart"><xsl:value-of select="parameter"/></xsl:variable>
           <xsl:variable name="Spielbetrieb"><xsl:value-of select="parameter"/></xsl:variable>
           <xsl:value-of select="concat($Art,' - ',$Geschlecht,' - ',$Sportart,' - ',$Spielbetrieb)"/>

        </xsl:for-each>
        </xsl:stylesheet>
        ausgabe:
        Code:
        maenner fussball 1. Bundesliga
        war das nicht so beabsichtigt?

        Kommentar


        • #5
          ja

          genauso wäre es gewünscht. wenn ich aber mal dein script einsetze, welches sich in der methode ja nicht von meinem unterscheidet, bekomme ich sogar n xsl - error aus xalan rausgespuckt.

          bei meinem script, welche ja wie gesagt das gleiche macht (siehe erstes posting) bekomme ich in alle variablen 'maenner' reingeschrieben...


          hätt ich bloß was vernünftiges gelernt

          war das tatsächlich eine ausgabe bei dir, oder hast du die ausgabe nur vermutet (bezgl. des xsl-errors - angeblich in line 10 column 44 for-each schleife)??
          **********
          arkos
          **********

          Kommentar


          • #6
            das ist die tatsächliche ausgabe.
            sablotron 1.0 und expat 1.95.6.

            arbeitest du über eine scriptsprache mit der transformation?

            Kommentar


            • #7
              ich benutze zum parsen XalanTransform

              aber kann das solche unterschiede machen??
              **********
              arkos
              **********

              Kommentar


              • #8
                lösung

                moin. hier die lösung, falls es interessiert:

                Code:
                <?xml version="1.0" ?>
                <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                                      version="1.0">
                
                  <xsl: output method="html"/>
                
                  <!-- benoetigter parameter variablen global definieren -->
                  <xsl:variable name="teilnehmer" select="/tabelle/parameters/parameter[1]" />
                  <xsl:variable name="sportart" select="/tabelle/parameters/parameter[2]" />
                  <xsl:variable name="spielbetrieb" select="/tabelle/parameters/parameter[3]" />
                  <xsl:variable name="saisonanfang" select="/tabelle/parameters/parameter[4]" />
                  <xsl:variable name="saisonende" select="/tabelle/parameters/parameter[5]" />
                
                  <xsl:variable name="method" select="/tabelle/parameters/@methodName" />
                  <xsl:template match="/">
                    START
                    SPORTART<xsl:value-of select="$sportart" />
                    BERTIEB<xsl:value-of select="$spielbetrieb" />
                    METHOD: <xsl:value-of select="$method" />
                    
                    <xsl:apply-templates/>
                
                </xsl:template>
                </xsl:stylesheet>

                output:

                Code:
                START
                    SPORTARTfussball
                    BERTIEBmaenner
                    METHOD: getTabelle
                **********
                arkos
                **********

                Kommentar

                Lädt...
                X