Announcement

Collapse
No announcement yet.

XML Baum in Variable speichern möglich?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Baum in Variable speichern möglich?

    Hallo,

    gibt es eine Möglichkeit mit xslt einen xml baum umzustrukturieren und sortieren und dann mit neuen Struktur zu arbeiten ohne ein neues XML File zu erzeugen also das diese neue Struktur zb. als Variable vorhanden ist?

    Danke

  • #2
    Unter XSLT 1.0 kann man temporäre Baume in xsl:variable speichern, aber dann nur mittels xsl:copy-of in den Ausgabebaum befördern. Unter XSLT 2.0 kann man beliebig auf solche temporären Strukturen zugreifen.

    Comment


    • #3
      wie sieht sowas dann beispielsweise aus?

      Comment


      • #4
        Siehe dieses Beispiel.

        Comment


        • #5
          Danke, leider muss ich mit XSLT 1.0 arbeiten.

          Unter XSLT 1.0 habe ich also keine Möglichkeit auf solche temporären Strukturen zuzugreifen?

          Oder gibt es da vielleicht eine Möglichkeit?

          Comment


          • #6
            Für XSLT 1.0 gibt es Erweiterungen wie exsl:node-set().

            Comment


            • #7
              Super Danke,

              kann ich dies dann auch mit xpath irgendwie wieder abfragen? Bei mir haben meine Versuche nicht geklappt...

              Bsp:

              Code:
              <xsl:template match="/">
                  	<xsl:variable name="hugo">
                  		<xsl:for-each select=".//rs:data/z:row">
                  			<xsl:sort select="@ows_Group"></xsl:sort>
                  			<xsl:sort select="@ows_Title"></xsl:sort>
                  			<xsl:sort select="@ows_Language"></xsl:sort>
                  			<ID><xsl:value-of select="@ows_ID"></xsl:value-of>
                  				<Title><xsl:value-of select="@ows_Title"></xsl:value-of></Title>
                  				<Group><xsl:value-of select="@ows_Group"></xsl:value-of></Group>
                  				<Language><xsl:value-of select="@ows_Language"></xsl:value-of></Language>
                  				<Link><xsl:value-of select="@ows_LinkFilename"></xsl:value-of></Link>
                  				<FileType><xsl:value-of select="@ows_DocIcon"></xsl:value-of></FileType>
                  			</ID>
                  		</xsl:for-each>
                  	</xsl:variable>
                  	<xsl:for-each select="exsl:node-set($hugo)/ID">
                  		<xsl:choose>
              				<xsl:when test="Title = following-sibling::Title[1]">
              					<xsl:value-of select="Title"></xsl:value-of>
              				</xsl:when>
              				<xsl:otherwise>
              					<br></br>
              				</xsl:otherwise>
              			</xsl:choose>
                 		</xsl:for-each>
              
                  	
                  </xsl:template>

              Comment


              • #8
                Vielleicht gibt es ja auch eine einfachere Möglichkeit für mein Problem:

                ich habe folgendes:
                <z:row ows_Title="1" ows_Language="English" ows_DocItem="doc" owsGroup="groupaa"/>
                <z:row ows_Title="1" ows_Language="Deutsch" ows_DocItem="doc" owsGroup="groupa"/>
                <z:row ows_Title="2" ows_Language="Espanol" ows_DocItem="doc" owsGroup="groupa"/>
                <z:row ows_Title="3" ows_Language="deutsch" ows_DocItem="doc" owsGroup="groupb"/>

                ich bräuchte folgendes:

                groupa english deutsch cesky espanol
                1 x x
                2 x

                groupb english deutsch cesky espanol
                3 x


                die abfragen zum auswerten für die spalten habe ich schon fertig nur die vorsortierung mit xsl:sort klappt nicht. Vielleicht hat da jemand ja eine bessere Idee.
                Attached Files

                Comment

                Working...
                X