Pul*_*kit 1 xml tags iteration xslt foreach
我正在使用的Xml
"<default>"
"<string>a</string>"
"<string>Apple</string>"
"<string>b</string>"
"<string>Ball</string>"
"<string>c</string>"
"<string>Cat</string>"
"<string>d</string>"
"<string>Dog</string>"
"</default>"
and this is the xsl I am using
<xsl:for-each select="//default/string">
<xsl:element name="{/default/string[?]\">
<xsl:value-of select="/default/string[?]\"/>
</xsl:element>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
现在我希望我的xml采用这种格式
<default>
<a>Apple</a>
<b>Ball</b>
<c>Cat</c>
<d>Dog</d>
</default>
Run Code Online (Sandbox Code Playgroud)
为此,我需要当前的迭代次数<xsl:element name="{/default/string[?]\">和增量值<xsl:value-of select="/default/string[?]\"/>
.有人可以帮助我吗?
我认为你正在寻找的position(),例如内部功能for-each使用<xsl:value-of select="position()"/>将产生1,2,3,4,等.
<xsl:for-each select="//default/string">
<xsl:element name="{.}"><xsl:value-of select="position()"/></xsl:element>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
我认为您最近的编辑不使用任何索引或位置,而是您想要的
<xsl:for-each select="//default/string[position() mod 2 = 1]">
<xsl:element name="{.}"><xsl:value-of select="following-sibling::string[1]"/></xsl:element>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)