Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Varför funkar inte mitt rekursiva anrop till en xsl-mall?

Postades av 2012-06-14 09:59:16 - Fredrik Kindahl, i forum xml, Tråden har 2 Kommentarer och lästs av 2317 personer

Jag har följande xml-struktur som kan vara godtyckligt djup.

<?xml version="1.0" encoding="utf-8"?>
<classifications>
  <level>
    <levelName>Produkter</levelName>
    <claClaID>831</claClaID>
    <overClaClaID></overClaClaID>
    <subLevels>
      <level>
        <levelName>1. Allm&#228;nt</levelName>
        <claClaID>832</claClaID>
        <overClaClaID>831</overClaClaID>
        <subLevels>
          <level>
            <levelName>a. Sortiment&#246;versikt</levelName>
            <claClaID>857</claClaID>
            <overClaClaID>832</overClaClaID>
            <subLevels/>
          </level>
       </subLevels>
       </level>
      </subLevels>
 </level>   
      <level>
        <levelName>9.9 &#214;vriga produkter</levelName>
        <claClaID>847</claClaID>
        <overClaClaID>831</overClaClaID>
        <subLevels>
          <level>
            <levelName>a. CM 2 Nm - minimotor (OEM)</levelName>
            <claClaID>850</claClaID>
            <overClaClaID>847</overClaClaID>
            <subLevels/>
          </level>
        </subLevels>
      </level>
</classifications>


sedan skulle jag vilja skriva ut den med följande xsl

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

    <xsl:template match="classifications">
          <xsl:call-template name="parseNode"></xsl:call-template>
    </xsl:template>  

	<xsl:template name="parseNode">
    	 <xsl:for-each select="level"> 
           <a> 
                <xsl:attribute name="href">/?page_id=11&amp;claClaID=<xsl:value-of select="claClaID" /></xsl:attribute>
                <xsl:attribute name="target"><xsl:value-of select="vidareTarget" /></xsl:attribute>
                <xsl:value-of select="levelName"/>
            </a><br/>
            <xsl:for-each select="../subLevels/level"> 
                <xsl:call-template name="parseNode"></xsl:call-template>        
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>     
</xsl:stylesheet>


men allt jag får är den första


Svara

Sv: Varför funkar inte mitt rekursiva anrop till en xsl-mall?

Postades av 2012-06-18 08:06:32 - Tomas Granlund

Din kod gör ungefär så här:

function parseNode(ICollection<level> node)
{
	foreach(level nodelevel in node)
	{
		printnode(nodelevel)
	
		foreach(level parentlevel in nodelevel.parent.sublevels) // varför kolla på parent?
		{
			parseNode(parentlevel) // parseNode() förväntar sig en nod och inte en level, så det här lär inte funka
		}
	}
}


Ett sätt att få det att funka är att se till så den inre for-each byter context till "subLevels" och sedan anropar parseNode igen.
d.v.s.

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

    <xsl:template match="classifications">
          <xsl:call-template name="parseNode"></xsl:call-template>
    </xsl:template>  

	<xsl:template name="parseNode">
    	 <xsl:for-each select="level"> 
           <a> 
                <xsl:attribute name="href">/?page_id=11&amp;claClaID=<xsl:value-of select="claClaID" /></xsl:attribute>
                <xsl:attribute name="target"><xsl:value-of select="vidareTarget" /></xsl:attribute>
                <xsl:value-of select="levelName"/>
            </a><br/>
            <xsl:for-each select="subLevels"> 
                <xsl:call-template name="parseNode"></xsl:call-template>        
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>     
</xsl:stylesheet>


Svara

Sv:Varför funkar inte mitt rekursiva anrop till en xsl-mall?

Postades av 2012-06-19 14:43:40 - Pelle Johansson

Jag saknar en "gilla-knapp" :)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
774
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies