Ik had dit strage probleem bij het creëren van een XSL vandaag. Gezocht naar antwoorden in het net, maar couldnt vinden elke .... Eigenlijk denk ik! Ik dint weet wat mijn probleem was, dus wat moet ik op letten?
Hoe dan ook! Voor het geval dat je dit heel hetzelfde probleem ook en een of andere manier door de kracht van de kracht die je weten te landen op deze pagina ... zou je me bedanken ton ... En als u per ongeluk kwam op deze pagina voor een of andere vreemde lot en u zich ook bevindt een XSL-ontwikkelaar, DO NOW noteer DIT VOOR DE TOEKOMST oorzaak, Als op een dag, je gezicht deze kwestie, dan is de FORCE misschien niet bij je zijn.
Probleemstelling:
Ik heb dit XML, waar er twee knooppunten met meerdere items in deze en de voorwerpen die tussen deze twee nodes hebben een een op een correspondentie. In het onderstaande voorbeeld, elk item in het knooppunt <array name="PLAYURL" /> betrekking heeft (overeenkomstige positie) naar een item in het knooppunt <array name="SITENAME" />
<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>
Nu heb ik een lus, waar ik doorlus <array name="SITENAME">, en ik wil voor het betreffende item (op de desbetreffende positie) te krijgen in <array name="PLAYURL">,
Wat u zou zich normaal gesproken proberen te doen is ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
SORRY! Werkt deze functie nog ... Ach! Verrast ...
Nu zou u waarschijnlijk wilt proberen, zoiets als dit ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
En Ook dit zal niet werken ... Nu heb je krassen op je hoofd, in een poging om iedereen die je denkt kent een aantal XSL contact op te nemen en zou kunnen zijn van enige hulp ... je probeert om de andere optie ... en nog steeds het zal werken ... Nou! Dat is wat er gebeurd is voor mij tenminste ...
DONT wanhoop!! TRY THIS
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ <xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
Dont ask ME waarom het werkt. Omdat ik niet een juiste reden hebben ... als je dat doet! Gelieve een reactie te laten vallen. Het kan erg handig worden. Ook! als je een betere titel voor dit bericht, doe stuur me een lijn 