XSLT 实现字符串的连接,请大神看下

 <data>
  <field name='id'>123</field>
  <field name='id'>abc</field>
</data>

 <data>
  <field name='id'>123|abc</field>
</data>

需求:就是把相同节点,相同属性的值,连接成一个字符串,并用|分隔符隔开。

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>

    <xsl:template match="/">
    <xsl:for-each select="data">
        <data>
            <field name='id'>
                <xsl:for-each select="field">
                    <xsl:if test="position()=1"><xsl:value-of select="."/></xsl:if>
                    <xsl:if test="position()!=1">|<xsl:value-of select="."/></xsl:if>
                </xsl:for-each>
            </field>
        </data>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>

不是单纯的XSLT可以转化的。XSL只能判断父子关系、匹配节点或属性,不能对兄弟关系的节点进行比较。