Note that there are some explanatory texts on larger screens.

plurals
  1. POGetting an attribute via another attribute in XSL
    primarykey
    data
    text
    <p>I stink at XSLT, so I'm not sure how to approach this... I'm getting a feed from the EQ2 database. The XML looks like this:</p> <pre><code>&lt;guilds limit="1" returned="1"&gt; &lt;guild accounts="3" alignment="0" dateformed="1127855265" guildid="111" guildstatus="0" id="1111111111" last_update="1326986410" level="11" name="MyGuild" version="1" world="Permafrost" worldid="202"&gt; &lt;ranks&gt; &lt;rank id="0" name="Leader"/&gt; &lt;rank id="1" name="Senior Officer"/&gt; &lt;rank id="2" name="Officer"/&gt; &lt;rank id="3" name="Senior Member"/&gt; &lt;rank id="4" name="Member"/&gt; &lt;rank id="5" name="Junior Member"/&gt; &lt;rank id="6" name="Initiate"/&gt; &lt;rank id="7" name="Recruit"/&gt; &lt;/ranks&gt; &lt;members&gt; &lt;member dbid="123456" rank="0" name="Dude1"/&gt; &lt;member dbid="123457" rank="1" name="Dude2"/&gt; &lt;member dbid="123458" rank="2" name="Dude3"/&gt; &lt;member dbid="123459" rank="4" name="Dude4"/&gt; &lt;member dbid="123460" rank="4" name="Dude5"/&gt; &lt;member dbid="123461" rank="4" name="Dude6"/&gt; &lt;/members&gt; &lt;events/&gt; &lt;/guild&gt; &lt;/guilds&gt; </code></pre> <p>I'm trying to add the ranks into a table. The XSL (version 1) snippet for it is as follows, but adding the name from the rank isn't working properly - I know this part is wrong:</p> <pre><code>&lt;xsl:value-of select="rank/rank[@id=1]/@name"/&gt; </code></pre> <p>So, can I get some help making it work and maybe an idea of how to shorten it?</p> <pre><code>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:output method="html" version="4.0" indent="yes"/&gt; &lt;xsl:template match="/"&gt; &lt;table width="100%" cellspacing="0" cellpadding="0" id="eq2roster" align="center"&gt; &lt;thead&gt; &lt;tr&gt; &lt;td colspan="4" class="eq2CharacterHeader"&gt;Character&lt;/td&gt; &lt;td colspan="3" class="eq2TradeskillsHeader"&gt;Tradeskills&lt;/td&gt; &lt;/tr&gt; &lt;tr class="ForumCategoryHeader"&gt; &lt;th class="eq2NameHeader"&gt;Name&lt;/th&gt; &lt;th class="eq2RankHeader"&gt;Rank&lt;/th&gt; &lt;th class="eq2ClassHeader"&gt;Class&lt;/th&gt; &lt;th class="eq2LevelHeader"&gt;Level&lt;/th&gt; &lt;th class="eq2ArtisanHeader"&gt;Artisan&lt;/th&gt; &lt;th class="eq2ArtisanLevelHeader"&gt;Level&lt;/th&gt; &lt;th class="eq2SecondaryHeader"&gt;Secondary&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;xsl:for-each select="guilds/guild/members/member"&gt; &lt;xsl:if test="@id &amp;gt; 1"&gt; &lt;tr&gt; &lt;td class="eq2Name"&gt; &lt;xsl:element name="a"&gt; &lt;xsl:attribute name="href"&gt; &lt;xsl:text&gt;http://eq2players.station.sony.com/&lt;/xsl:text&gt; &lt;xsl:value-of select="concat(normalize-space(/guilds/guild/@world), '/')"/&gt; &lt;xsl:value-of select="concat(normalize-space(@name), '/')"/&gt; &lt;/xsl:attribute&gt; &lt;xsl:attribute name="target"&gt; &lt;xsl:text&gt;_blank&lt;/xsl:text&gt; &lt;/xsl:attribute&gt; &lt;xsl:value-of select="normalize-space(@name)"/&gt; &lt;/xsl:element&gt; &lt;/td&gt; &lt;xsl:element name="td"&gt; &lt;xsl:attribute name="class"&gt; &lt;xsl:text&gt;eq2Rank eq2rank-&lt;/xsl:text&gt; &lt;xsl:value-of select="translate(normalize-space(guild/@rank),' ','')"/&gt; &lt;/xsl:attribute&gt; &lt;xsl:choose&gt; &lt;xsl:when test="member/@rank = 1"&gt;&lt;span class = "rank1"&gt;&lt;xsl:value-of select="ranks/rank[@id=1]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;xsl:when test="member/@rank = 2"&gt;&lt;span class = "rank2"&gt;&lt;xsl:value-of select="ranks/rank[@id=2]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;xsl:when test="member/@rank = 3"&gt;&lt;span class = "rank3"&gt;&lt;xsl:value-of select="ranks/rank[@id=3]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;xsl:when test="member/@rank = 4"&gt;&lt;span class = "rank4"&gt;&lt;xsl:value-of select="ranks/rank[@id=4]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;xsl:when test="member/@rank = 5"&gt;&lt;span class = "rank5"&gt;&lt;xsl:value-of select="ranks/rank[@id=5]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;xsl:when test="member/@rank = 6"&gt;&lt;span class = "rank6"&gt;&lt;xsl:value-of select="ranks/rank[@id=6]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;xsl:when test="member/@rank = 7"&gt;&lt;span class = "rank7"&gt;&lt;xsl:value-of select="ranks/rank[@id=7]/@name"/&gt;&lt;/span&gt;&lt;/xsl:when&gt; &lt;/xsl:choose&gt; &lt;/xsl:element&gt; &lt;xsl:element name="td"&gt; &lt;xsl:attribute name="class"&gt; &lt;xsl:text&gt;eq2Class eq2&lt;/xsl:text&gt; &lt;xsl:value-of select="translate(normalize-space(type/@class),' ','')"/&gt; &lt;/xsl:attribute&gt; &lt;xsl:value-of select="type/@class"/&gt; &lt;/xsl:element&gt; &lt;td class="eq2level"&gt;&lt;xsl:value-of select="type/@level"/&gt;&lt;/td&gt; &lt;xsl:element name="td"&gt; &lt;xsl:attribute name="class"&gt; &lt;xsl:text&gt;eq2ArtisanClass eq2&lt;/xsl:text&gt; &lt;xsl:value-of select="translate(normalize-space(tradeskills/tradeskill/@class),' ','')"/&gt; &lt;/xsl:attribute&gt; &lt;xsl:value-of select="tradeskills/tradeskill/@class"/&gt; &lt;/xsl:element&gt; &lt;td class="eq2ArtisanLevel"&gt;&lt;xsl:value-of select="tradeskills/tradeskill/@level"/&gt;&lt;/td&gt; &lt;xsl:element name="td"&gt; &lt;xsl:attribute name="class"&gt; &lt;xsl:text&gt;eq2Secondary eq2&lt;/xsl:text&gt; &lt;xsl:value-of select="translate(normalize-space(secondarytradeskills/secondarytradeskill/@name),' ','')"/&gt; &lt;/xsl:attribute&gt; &lt;xsl:value-of select="secondarytradeskills/secondarytradeskill/@name"/&gt; &lt;/xsl:element&gt; &lt;/tr&gt; &lt;/xsl:if&gt; &lt;/xsl:for-each&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload