XSLT:获取父级索引

时间:2015-12-17 09:03:29

标签: xml xslt

我有一个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

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的值。