Q:

Sitecore: Cannot get all the values inside of a multi-list item

For example I can get to a Profile created in Sitecore  and I can get it's name.
(Sitecore) Settings > Profile > UserTypes > Entertainment Executive > AR Executive
<xsl:variable name="ARExec" select="$UserTypes/item[3]/item[1]"/>

The above code will print out AR Executive
Now inside of AR Executive I have a Multilist named Related Genre Types, and inside that are:

Music
Comedy
TV

I've been trying to follow this example here:
http://sdn.sitecore.net/Articles/XSL/Accessing%20Field%20Values/Multilist.aspx
However I cannot reproduce the results, I want to be able to get and list out all 3 names, but it only let's me grab Music, the first item. I'm trying to figure out how to loop through the items in the Multilist and display them all.
<xsl:template match="*" mode="main">
....    

<xsl:variable name="ARExec" select="$UserTypes/item[3]/item[1]"/>

<lable><xsl:value-of select="sc:fld('Related Genre Types', $ARExec)"/></lable>

<xsl:variable name="ids" select="concat(sc:fld('Related Genre Types',$ARExec),'|')"/>

<xsl:call-template name="PrintTitles">
    <xsl:with-param name="ids" select="$ids"/>
</xsl:call-template>

</xsl:template>

<xsl:template name="PrintTitles">
  <xsl:param name="ids"/>
  <xsl:if test="$ids">
    <xsl:variable name="itm_id" select="substring-before($ids, '|')"/>
    <xsl:if test="$itm_id">
      <xsl:variable name="itm" select="sc:item($itm_id,.)"/>

        <xsl:value-of select="sc:fld('Title', $itm)"/> &amp; 

    </xsl:if>

    <xsl:call-template name="PrintTitles">
      <xsl:with-param name="ids" select="substring-after($ids, '|')"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

^ Prints out {id number...}Music &

How do I loop through the my Multilist to grab and print out all 3 items?

A:

I had to target the owner of the Multilist item differently, I had to target it using @key then the example code worked:
<xsl:variable name="ExecUser" select="$UserTypes/item[@key='entertainment executive']" /> 

