Here is a sample
Code:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:key name="k1"
match="AnswerSet/Answer[@IncludeInGroup = 'true']"
use="@questionId"/>
<xsl:template match="/">
<nodes>
<xsl:apply-templates/>
</nodes>
</xsl:template>
<xsl:template match="AnswerSet">
<node>
<xsl:apply-templates select="Answer[@IncludeInGroup = 'true'][generate-id()= generate-id(key('k1', @questionId)[1])]" mode="group"/>
</node>
</xsl:template>
<xsl:template match="Answer[@IncludeInGroup = 'true']" mode="group">
<xsl:attribute name="{@questionId}">
<xsl:apply-templates select="key('k1', @questionId)"/>
</xsl:attribute>
</xsl:template>
<xsl:template match="Answer">
<xsl:if test="position() > 1">|</xsl:if>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
Transforms your sample
Code:
<AnswerSet>
<Answer questionId="Type" IncludeInGroup="true">Standard</Answer>
<Answer questionId="Options" type="list" selectedValue="1" IncludeInGroup="true">item1</Answer>
<Answer questionId="Options" type="list" selectedValue="2" IncludeInGroup="true">item2</Answer>
<Answer questionId="Options" type="list" selectedValue="3" IncludeInGroup="true">item3</Answer>
<Answer questionId="name" IncludeInGroup="false">my name</Answer>
</AnswerSet>
into
Code:
<nodes>
<node Type="Standard" Options="item1|item2|item3"/>
</nodes>