XSL 1.0如何一次将div标签添加到两个元素/文本中

时间:2011-10-14 18:18:05

标签: xml xslt html xpath

我有一个与此类似的XML

<a>
  <b>text1</b>
  <b>text2</b>
  <b>text3</b>
   .....
   ....
</a>

这是所需的输出

<div>text1 text2</div>
<div>text3 text4</div>

使用xsl foreach可以轻松地为所有文本添加包装div或为每个文本添加单独的div。如何在一次需要为2个文本添加div的情况下完成上述要求?

1 个答案:

答案 0 :(得分:4)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/">
    <xsl:apply-templates select="a/b[position() mod 2 = 1]"/>
  </xsl:template>

  <xsl:template match="b">
    <div>
      <xsl:value-of select="concat(., ' ', following-sibling::b)"/>
    </div>
  </xsl:template>

</xsl:stylesheet>