我需要使用Xpath1.0遍歷XML中2個層次的嵌套循環。在XPath嵌套迭代中獲取當前索引
迭代時,它應該打印元素值'Y',如果它是第二級別的第一個元素並且當前索引作爲計數器。
我能夠完成其中一件事情,但不能同時完成。 例如如果我在第一個循環上迭代並使用position(),它會給我當前索引,但我無法確定它是否是第二級的第一個元素。同樣,如果我迭代第二循環,我沒有得到實際的指數,但得到它是否是第一個元素使用position()= 1
我附上了一個示例請求和預期響應。
<root>
<level1>
<level2>name1</level2>
<level2>name2</level2>
</level1>
<level1>
<level2>name3</level2>
<level2>name4</level2>
<level2>name5</level2>
</level1>
<level1>
<level2>name6</level2>
<level2>name7</level2>
</level1>
</root>
結果應該是這樣的:
name1_Y_1
name2_N_2
name3_Y_3
name4_N_4
name5_N_5
name6_Y_6
name7_N_7
這裏是現有代碼:
<root>
<xsl:for-each select="$Map-Data/root/level1/level2">
<xsl:choose>
<xsl:when test="position() = 1">
<names>
<xsl:value-of select="concat(current(), '_Y_', position())"/>
</names>
</xsl:when>
<xsl:otherwise>
<names>
<xsl:value-of select="concat(current(), '_N_', position())"/>
</names>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</root>
請解釋一下其中的語言你正在寫的「嵌套循環」,向我們證明代碼。 – 2014-12-13 17:19:52
它在XPath編輯器中的Tibco BusinessWorks中。 – 2014-12-13 17:32:20
...「並向我們顯示該代碼」。我只能繼續馬丁。 – 2014-12-13 17:49:56