仅处理XSLT中第一次出现的元素

时间:2013-06-27 10:24:05

标签: xslt xslt-2.0 xsl-fo

我有像

这样的xml
<A>
 <B>
    <C>90</C>
    <D>var 1</D>
 </B>
 <B>
    <C>90</C>
    <D>var 2</D>
 </B>
 <B>
    <C>90</C>
    <D>var 3</D>
 </B>
</A>

我需要展示元素的价值&#34; C&#34;只有一次(因为xml由第三方和元素生成&#34; C&#34;在B的每个节点重复出现。不正确的方式,但我可以做 没什么关于它的。)

现在,当我得到C的值(使用下面)时,它给我的价值为&#34; 909090&#34;而我只需要&#34; 90&#34;。怎么去?如果以某种方式我可以获得列表大小然后划分长度 结果字符串的长度为子字符串。但是如何获得列表长度。

<fo:table-row>
 <fo:table-cell>
    <fo:block-container>
        <fo:block>C :: </fo:block>
    </fo:block-container>
 </fo:table-cell>
 <fo:table-cell>
    <fo:block-container>
        <fo:block>
            <xsl:apply-templates select="A/B/C"/>
        </fo:block>
    </fo:block-container>
 </fo:table-cell>
</fo:table-row>

1 个答案:

答案 0 :(得分:2)

您可以始终使用<xsl:apply-templates select="(A/B/C)[1]"/>来处理第一个C元素。