Also den ersten Teil konnte ich fast mit concat() lösen. Sieht dann so aus:
<xsl:value-of select="concat('<card><name id="', name/@id, '">', name, '</name><set>', set, '</set></card>')" />
Leider werden bei mir aber die < und > nicht umgewandelt (nutze XT mit XP). Weiss da jmd. Rat? Für das zweite Problem hab ich noch keinen Ansatz probiert.