|
Проблема с форматом числа
|
|||
---|---|---|---|
#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&gotonew=1&tid=1333760]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 135ms |
0 / 0 |