Given this XML;
Code:
<Nodes>
   <Node>
     <Software id="A" version="1.2.3.4"/>  
     <Software id="B" version="2.2.3.4"/>
     <Software id="C" version="3.2.3.4"/>
Trying to get version for Software with ID='a', doing this fails;
Code:
<xsl:for-each select="/Nodes/Node">
  <xsl:value-of select="./Software[@id='A']/@version"/>
</xsl:for-each>
The two below work fine but are not specific enough (can fail if order is different)
Code:
<xsl:for-each select="/Nodes/Node">
  <xsl:value-of select="./Software/@version"/>
</xsl:for-each>

//and 

<xsl:for-each select="/Nodes/Node">
  <xsl:value-of select="./Software[1]/@version"/>
</xsl:for-each>
Appreciate any input (apologise for any typo's - typed the example in by memory).