小编Sim*_*unn的帖子

在for-each中仅显示一次标题

说我有以下XML:

<a>
  <b>1</b>
  <b>2</b>
  <b>3</b>
</a>
Run Code Online (Sandbox Code Playgroud)

......并要求:

Header
1
2
3
Run Code Online (Sandbox Code Playgroud)

...但是像xslt一样:

<xsl:template match = "/" >  
  <xsl:variable name="headed" select="false()"/>
  <xsl:for-each select = "a/*" >
    <xsl:if test="not($headed)">
      <xsl:text>Header</xsl:text>
      <!-- 
        this next line causes a problem due to 
        the attempted reassignment of $headed
      -->
      <xsl:variable name="headed" select="true()"/>
    </xsl:if>
    <xsl:value-of select="." />
    <xsl:value-of select="'&#x0a;'"/>
  </xsl:for-each>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

无效,任何人都可以推荐一个简短易读的解决方案吗?也许是一本好书,可以从中学习功能性思维:)

干杯

西蒙

------------------------------附录------------------- -------

在思考了我已经提出的答案后,我意识到我已经失去了我试图解决的问题的一些关键组成部分.

我的数据更像是:

<address>
  <line1>street</line1>
  <line2>town</line2>
  <line3>city</line3>
  <country>uk</country>
</address>
Run Code Online (Sandbox Code Playgroud)

我想要的输出更像是:

<table>
  <tr><td rowspan="6" valign="top">Address</td><td>street</td></tr>
  <tr><td>town</td></tr>
  <tr><td>city</td></tr>
  <tr><td>uk</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

任何进一步的帮助将不胜感激.

xslt

2
推荐指数
1
解决办法
3343
查看次数

标签 统计

xslt ×1