|
|
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
У меня есть древовидное двухуровневое XML с десятичными числами, разделяющие целую и дробную часть запятой. Преобразую этот XML с помощью XSL. Необходимо выводить итог, то есть суммировать все эти десятич. числа. При этом возникает проблема. Изначально делал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Выводит в ячейке с итогом Nan (not a number). Если в XML вместо запятых в числах ставлю точки, то все работает правильно, а с запятыми проблема.(( В инете полазил, нашел следующее: "При форматировании числа парсер ВСЕГДА полагает, что разделитель - точка. Поэтому, если у вас запятая, перед форматированием и преобразованием в число, например, функцией number(), замените запятую на точку через функцию замены в строке. Потом в number() и далее форматируйте..." ОК,делаю как говорят: Код: plaintext Но теперь ошибка : Код: plaintext Помогите, кто может. Как из строки получить node-set или , может, другой подход есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 16:42 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
AlexvmkУ меня есть древовидное двухуровневое XML с десятичными числами, разделяющие целую и дробную часть запятой. Ужас. Кто же Вас этому научил? Вы стандарты W3C читали? AlexvmkИзначально делал так: Код: plaintext 1. 2. 3. 4. Код: plaintext И опять логично. Одну ошибку Вы исправили, но она то была не одна AlexvmkКак из строки получить node-set или , может, другой подход есть. Вообще говоря во многих парсерах есть функция node-set(), но иногда можно обойтись без нее. Покажите, как Вы формируете переменную $XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 22:42 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
AlexvmkУ меня есть древовидное двухуровневое XML с десятичными числами, разделяющие целую и дробную часть запятой. Ужас. Кто же Вас этому научил? Вы стандарты W3C читали? AlexvmkИзначально делал так: Код: plaintext Логично. <xsl:decimal-format /> устанавливает выходной формат чисел, а не входной ОК,делаю как говорят: Alexvmk Код: plaintext Код: plaintext И опять логично. Одну ошибку Вы исправили, но она то была не одна AlexvmkКак из строки получить node-set или , может, другой подход есть. Вообще говоря во многих парсерах есть функция node-set(), но иногда можно обойтись без нее. Покажите, как Вы формируете переменную $XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 22:43 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, спасибо за ответ. _Vasilisk_Покажите, как Вы формируете переменную $XML Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2008, 09:37 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
Решений ни у кого не появилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2008, 19:19 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
Alexvmk_Vasilisk_Покажите, как Вы формируете переменную $XML Код: plaintext Тогда зачем Вы заморачиваетесь с переменной? И даже, если Вы заморачиваетесь именно так, то все должно работать. В $XML уже находится дерево Покажите минимальный XML и минимальную XSL, на которых проявляется ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2008, 23:51 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
Имею XML: <NewDataSet> <Table> <STN_NAME>Клявлино КП</STN_NAME> <PERIOD>Рейсы до 05.10.2008</PERIOD> <SUMM_INSIDE>114,9</SUMM_INSIDE> </Table> <Table> <STN_NAME>Клявлино КП</STN_NAME> <PERIOD>Рейсы до 05.10.2008</PERIOD> <SUMM_INSIDE>156,7</SUMM_INSIDE> </Table> </NewDataSet> Испрльзую transformer Saxon-B 9.0.0.6. а) XSL такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: plaintext 1. б) XSL такой же, только изменена строка с суммированием: Код: plaintext Код: plaintext 1. логично, так как translate не может принимать сразу набор аргументов. Подкиньте плиз идейку, че то никак решение не найду... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 11:01 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
Неужели с такой распространенной проблемой никто не сталкивался?!?!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 12:41 |
|
||
|
Проблема с форматом числа
|
|||
|---|---|---|---|
|
#18+
Общая идея понятна. Вопрос 1. Откуда такое желание использовать запятую в качестве разделителя? Вопрос 2. Вы пишите Код: plaintext Далее - есть такое расширение стандарта как node-set() Saxon ее поддерживает? Если да, то вот Вам код Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ну и самое последнее - есть золотое правило, то, что нельзя сделать при помощи XSL преобразования, можно сделать при помощи двух XSL преобразований. Т.е. можно вначале заменить все запятые на точки, а потом уже работать с документами. Но Вы все-таки ответьте на первый вопрос С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2008, 23:43 |
|
||
|
|

start [/forum/topic.php?fid=14&fpage=48&tid=1333760]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 179ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...