我有一个XSLT文件
<xsl: for-each select = "Parent1/Parent2">
<xsl: value-of select = "Child_1">
<xsl: value-of select = "Child_2">
</xsl: for-each>
在这种情况下,子元素Child_1和Child_2都将添加到最终的xml文件中。
我只需要在Parent2的索引为4
时打印Child_2我怎样才能实现
这是输入xml
<Parent1>
<Parent2>
<Child_1>Child 1.1</Child_1>
<Child_2>Child 1.2</Child_2>
</Parent2>
<Parent2>
<Child_1>Child 2.1</Child_1>
<Child_2>Child 2.2</Child_2>
</Parent2>
<Parent2>
<Child_1>Child 3.1</Child_1>
<Child_2>Child 3.2</Child_2>
</Parent2>
<Parent2>
<Child_1>Child 4.1</Child_1>
<Child_2>Child 4.2</Child_2>
</Parent2>
<Parent2>
<Child_1>Child 5.1</Child_1>
<Child_2>Child 5.2</Child_2>
</Parent2>
<Parent2>
<Child_1>Child 6.1</Child_1>
<Child_2>Child 6.2</Child2>
</Parent2>
</Parent1>
As an output I want
Child_1 1.1
Child_1 2.1
Child_1 3.1
Child_1 4.1
Child_2 4.2
Child_1 5.1
Child_1 6.1
答案 0 :(得分:2)
也许这对你有用:
<xsl:for-each select="Parent1/Parent2">
<xsl:variable name="i" select="position()" />
<xsl:value-of select="Child_1"/>
<xsl:value-of select="Child_2[$i=4]"/>
</xsl:for-each>
假设您希望仅在表达式Child_2
选择的(整个)节点集中Parent2
的位置为4时输出Parent1/Parent2
的值。