Imao sam ovaj problem, dok strage stvaranje XSL danas. Tražiti odgovore u cijeloj mreži, ali nije mogao pronaći bilo .... Zapravo mislim! Ja ostaviti trag znati što moj problem je bio, tako što trebam tražiti?
U svakom slučaju! Samo u slučaju da se ovaj vrlo isti problem također i nekako po snazi SNAGU je uspio sletjeti na ovoj stranici ... što bi mi zahvaliti tona ... A ako ste slučajno došli na ovu stranicu za neke čudne sudbine, a vi se dogoditi da se XSL developer, ne bi zabilježite ovo sada, za budućnost uzrok, ako neki dan, ti lice ovaj problem, onda FORCE možda neće biti s vama.
Problem izjavu:
Imam ovaj XML, gdje su dva čvora s više stavki u njemu i stavke između tih dvaju čvorova imaju jedan na jedan dopis. U donjem primjeru, svaka stavka u čvor <array name="PLAYURL" /> odnosi (odgovarajući položaj) na stavku u čvor <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>
Sada, imam petlju, gdje sam loop <array name="SITENAME">, i želim da se u svezi stavke (na tom mjestu) u <array name="PLAYURL">,
Što normaly će pokušati učiniti je ...
<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>
OPROSTI! OVO navika funkcionirati ... Ah!! Surpised ...
Sada ste vjerojatno biste željeli probati, ovako ...
<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>
A opet to neće raditi ... Sada ste grebanje glavu, pokušavajući se obratiti svima koji mislite da zna neki XSL i može biti od bilo kakve pomoći ... te pokušati sve druge opcije ... i još uvijek se neće raditi ... dobro! Taj što mi se dogodilo atleast ...
Dont Očaj! Pokušajte ovo
<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 Pitajte me zašto to radi. Uzrok ja dont imati pravi razlog ... ako to ne učinite! Molimo vas da ispustite komentar. To bi moglo biti prilično korisno. Također! ako imate bolji naslov za ovaj post, to drop me liniju 