xsl: count не считается правильно в xsl: value-of select - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь подсчитать количество видов флоксов в этом XML-файле:

<?xml version="1.0" encoding="ISO-8859-1"?>
<nuages>
   <nuage>
      <nom>altocumulus 
        <espece>lenticularis</espece>
        <espece>stratiformis</espece>
        <espece>castellanus</espece>
        <espece>flocus</espece>
      </nom>
      <altitude max="6000" min="2000" />
      <hydrometeores>Aucun.</hydrometeores>
   </nuage>
</nuages>

Я пробовал это:

<xsl:value-of select="count(/nuages/nuage[espece='flocus'])" />

но всегда возвращает 0

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Ответ в предположении, что ваш XML-код правильный:

Если вы измените выражение XPath на выражение, предложенное @Tomolak count(/nuages/nuage/nom[espece='flocus']), в результате вы получите 1.

Но более вероятный подход заключается в том, что вы хотите подсчитать виды, которые находятся на одном уровне таксономии .
. В этом случае используйте

count(/nuages/nuage/nom[espece='flocus']/espece)

, которыйрезультат 4.

0 голосов
/ 02 января 2019

Я подозреваю, что вы хотите

<xsl:value-of select="count(/nuages/nuage/nom/espece[.='flocus'])" />

Но я не совсем уверен (из-за ограничений моего французского и вашего английского).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...