xml - xsl :for-each loop, 使用 xsl:if 基于索引

标签 xml xslt

我想根据 xsl:for-each 循环中的索引编写一些逻辑 例如。

<xsl:for-each select="address">
  <if index is 0>
      <EPAPARTMENT1> <xsl:value-of select="value" /> </EPAPARTMENT1>
  <if>
  <if index is 1>
      <EPDEPARTMENT2> <xsl:value-of select="value" /> </EPDEPARTMENT2>
  <if>
</xsl:for-each>

请解释,如何在 xsl:for-each 循环中获取索引值以及如何将其与 xsl:if 一起使用

谢谢。

最佳答案

当您遍历节点集时,您可以使用 position() 函数返回节点集中的当前索引。请注意,该索引是从 1 开始的。所以在你的情况下你会写这样的东西:

<xsl:for-each select="address">
  <xsl:if test="position() = 1">
    <EPAPARTMENT1> <xsl:value-of select="value" /> </EPAPARTMENT1>
  </xsl:if>
  <xsl:if test="position() = 2">
    <EPDEPARTMENT2> <xsl:value-of select="value" /> </EPDEPARTMENT2>
  </xsl:if>
</xsl:for-each>

关于xml - xsl :for-each loop, 使用 xsl:if 基于索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20229108/

相关文章:

Python 值错误 : XPath error: Unregistered function

c# - 使用 XSLT 将 XML 转换为 HTML

xml - xslt - 添加 </tr><tr> 每 n 个节点?

xml - 使用XPath从XML获取特定节点

xml - XSL 仅在一个节点上排序

java - JAXB:XML 注册表中没有与 namespace 和名称匹配的 XML 元素声明

objective-c - iOS 解析Webservice数据

java - 按属性名称与标记名称解码 XML 元素

Java:解析 XML 时忽略转义

xslt - Xpath选择多个命名空间的元素