2013-06-27 1 views
0

У меня есть XML, какОбработка только первое вхождение элемента в XSLT

<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> 

Мне нужно, чтобы показать значение элемента «C» только один раз (как XML генерируется третьей стороной и элементом «C» повторяется в каждом узле B. Неверный способ, но я могу сделать ничего об этом).

Теперь, когда я получаю значение C (используя ниже), он дает мне значение как «909090», а мне нужно только «90». Как это сделать? Если каким-то образом я могу получить размер списка, а затем разделите длину строки результата с длиной подстроки. Но как получить длину списка.

<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> 
+0

Ах, вы хотите, чтобы только первые «90» ... с трудом пытались даже выяснить вопрос. –

ответ

2

Ну вы всегда можете использовать <xsl:apply-templates select="(A/B/C)[1]"/> обрабатывать только первый C элемент.

+0

thanx много .. сработано подобный очарование ... простой решение ... – advaita