#xslt
#xslt
Вопрос:
У меня есть значение, которое я анализирую из XML-файла, которое мне нужно вставить в мою таблицу. У меня отображается число, но оно должно быть как «#, # # #.0» вместо просто целого числа. Я получил число, используя:
<td><xsl:value-of select="amount/@pricePerUnit"/></td>
Цена за единицу, скажем, 2. Как я уже сказал, мне нужен «2.0».
Я пробовал
<td><xsl:value-of select="amount/@format-number(pricePerUnit,'#,###.0')"/></td>
и
<td><xsl:value-of select="amount/format-number(@pricePerUnit,'#,###.0')"/></td>
но ни то, ни другое не работает. Поискал в Google, но, похоже, не могу найти правильный синтаксис. Кто-нибудь может помочь?
Комментарии:
1. Поможет ли это, если вы поместите xpath внутри функции, а не наоборот? Вот так:
format-number(amount/@pricePerUnit, '#,###.0')
. Может быть, стоит попробовать…2. Да. Спасибо Ксавье. Иногда быть новым — отстой. Как только я увидел ваш ответ, я подумал: «Черт возьми, это так очевидно». Спасибо! Разместите этот ответ, и я проголосую за него как за фаворита.
3. Просто сделал это. И не беспокойтесь — это то, для чего мы здесь. Приветствия!
Ответ №1:
Попробуйте ввести свой xpath внутри функции в качестве первого аргумента:
format-number(amount/@pricePerUnit, '#,###.0')
Это позволит найти значение вашего узла атрибута, передать его в функцию format-number() и вернуть возвращаемое значение.