Как мне использовать функцию xsl format-number. для атрибута?

#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() и вернуть возвращаемое значение.