XSLT:获取第n个元素



我正试图在我的XML(跨不同的父级(中第n次出现元素C

输入:

<TEST>
<A>
<B>*</B>
<C>Text1</C> (#1)
</A>
<A>
<B>*</B>
</A>
<A>
<B>/</B>
<C>Aaaa</C> (#2)
</A>
<A>
<B>/</B>
<C>Text2</C> (#3)
</A>
</TEST>

期望的结果:获得第二元素将产生";Aaaa";

我尝试过:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://sap.com/xi/ME" xmlns:me="http://sap.com/xi/ME" xmlns:gdt="http://sap.com/xi/SAPGlobal/GDT" xmlns:meint="http://sap.com/xi/MEINT" xmlns:demand="http://www.sap.com/me/demand" xmlns:common="http://www.sap.com/me/common">
<xsl:template match="/">
<xsl:value-of select="/TEST/A/descendant::C[2]"/>        
</xsl:template>
</xsl:stylesheet>

我该如何让它发挥作用?

找到了这个例子,但我无法将其应用:https://stackoverflow.com/a/25280116

谢谢

我找到了解决方案(注意括号(:

<xsl:value-of select="(/TEST/A/descendant::C)[2]"/>     

有关说明,请参阅:https://stackoverflow.com/a/4008925

您的尝试不起作用,因为第一个A元素没有第二个C子代。

要选择整个文档中的第二个C元素,请尝试:

<xsl:value-of select="/descendant::C[2]"/>

或者(同样的事情(:

<xsl:value-of select="(//C)[2]"/>

要将选择限制为给定层次结构中的C元素,可以执行以下操作:

<xsl:value-of select="(/TEST/A/C)[2]"/>

相关内容

  • 没有找到相关文章

最新更新