It's difficult to see what you're doing wrong when you don't say what you're doing. The most common mistake in this area is probably failing to understand that for-each changes the context node, and that within the for-each, relative path expressions are relative to the context node established by the for-each. Code like the following should work:
<xsl:for-each select="question">
...
<xsl:for-each select="answer">
Incidentally, they are elements, not tags. An element usually has two tags, a start tag and an end tag. So if you have two xsl:for-each elements, you have four xsl:for-each tags...
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference