Имах този strage проблем, като същевременно се създава XSL днес. Погледнато отговори из мрежата, но нямаше как да намеря .... Всъщност аз предполагам! Удар знам какво е мой проблем, така че какво мога да търсим?
Както и да е! Само в случай, че имате същия този проблем и по някакъв начин чрез силата на сила, който успява да кацне на тази страница ... ще ми благодари т ... И ако сте случайно кацна на тази страница по някаква странна съдба и се случи да бъде разработчик XSL, не СЕ НАПРАВИ бележка за това, ЗА БЪДЕЩЕТО причината, ако някой ден, сте изправени пред този въпрос, тогава СИЛА не може да бъде с вас.
Проблем изявление:
Аз имам този XML, където има два възела с няколко елемента в нея и елементи между тези два възела имат една еднозначна. В примера по-долу, всеки елемент в възел <array, name="PLAYURL" /> се отнася (съответната позиция) към даден елемент в възел <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>
Сега, аз имам една линия, където аз контур чрез <array name="SITENAME">, и аз искам да отида Свързана стока (в съответната позиция) в <array name="PLAYURL">,
Какво бихте нормално опитайте да направите, е ...
<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>
За съжаление!! Това няма да работят ... Ах!! Surpised ...
Сега вие вероятно ще искате да опитате нещо подобно ...
<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>
И отново това няма да работят ... Сега можете надраскване главата си, опитвайки се да се свържете с всеки, който мислите, че знаете някои XSL и може да бъде от полза ... опитате всеки друг вариант ... и все още го имам навик работа ... Е! Това какво се случи с мен поне ...
Недей отчайвайте!!! Опитайте това
<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>
Не ме питат защо работи. Защото няма право причина ... ако го направите! Моля ви, пуснете коментар. Тя може да бъде доста полезен. Също така! ако имате по-добро заглавие за този пост, да ме линия 