在XSLT中解析1行中的多行

时间:2009-10-27 23:40:19

标签: xml xslt parsing

<xml>
   <data>
     <Attribute name='forms'>
        <List>
          <String>xform</String>
          <String>yform</String>
        </List>
      </Attribute>
    </data>
  </xml>

如何设置我的xslt以获取List中的所有值。所以我想输出由1分隔的1行中的两个值。对于前者

的XForm | yform

1 个答案:

答案 0 :(得分:1)

这只是一种方式,假设简单的输入示例。

<xsl:template match="/">
  <xsl:for-each select="//String">
    <xsl:value-of select="."/><xsl:if test="not(position() = last())">|</xsl:if>
  </xsl:for-each>
</xsl:template>

如果我理解您添加的评论,这是一个更具体的模板规则。如果评论last()用法的人也会发布样本,那就太好了。

<xsl:template match="Attribute[@name='forms']">
  <xsl:for-each select="List//String">
    <xsl:value-of select="."/><xsl:if test="not(position() = last())">|</xsl:if>
  </xsl:for-each>
</xsl:template>