Получить позицию строки в массиве, используя XSLT - PullRequest
0 голосов
/ 08 мая 2018

Я хочу получить позицию строки в массиве. Например, мой XML-файл <Data>AAAA</Data>. И мне нужно получить позицию, которая определяет в списке переменных:

<xsl:variable name="array" as="element()*">
    <Item>GGGG</Item>
    <Item>DDDD</Item>
    <Item>AAAA</Item>
    <Item>UUUU</Item>
</xsl:variable>

Учитывая пример XML-файла, выходные данные должны генерировать позицию 'AAAA' в списке массивов. Таким образом, вывод должен быть 2. Значение <Data> также может быть изменено. Вот мой пример кода для получения позиции.

<xsl:value-of select="$array[Data[position()]]"/> 

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

1 Ответ

0 голосов
/ 08 мая 2018

XSLT 2.0 предоставляет функцию index-of, которую можно использовать в этом случае для определения положения AAAA в последовательности, содержащейся в переменной $array

<xsl:value-of select="index-of($array, Data)" />

Это вернет значение 3 для вашего ввода <Data>AAAA</Data>.

...