Если ваши фактические данные содержат запятую, которую вы не хотите рассматривать как разделитель, вам нужно поставить кавычки вокруг этого поля.
Попробуйте это XSLT:
<xsl:template match="parent">
<xsl:text>rowId,data </xsl:text>
<xsl:for-each select="childlevel1/childlevel2">
<xsl:number />
<xsl:text>,</xsl:text>
<xsl:value-of select="concat('"[',@x,',',@y,',',@z,']"')"/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
Когда вы применяете его к этому XML
<parent>
<childlevel1>
<childlevel2 x="1" y="2" z="3" />
<childlevel2 x="11" y="12" z="13" />
</childlevel1>
</parent>
Следующий CSV выводится
rowId,data
1,"[1,2,3]"
2,"[11,12,13]"
Когда вы открываете это вВаша любимая электронная таблица (например, Microsoft Excel или OpenOffice) должна содержать только два столбца.