XSL не понимает числа в формате [мантисса]e[логарифм]
От: OriginalZealot Россия  
Дата: 22.04.04 07:27
Оценка:
Здравствуйте уважаемые co-wokers.

Существует некоторый XML, в дереве которого лежат приблизительно такие вещи:

<coordinates>
<x>2.34296e-013</x>
<y>9.44124e-010</y>
<z>2.35912e-010</z>
</coordinates>

при попытке просто перетянуть эти данные в выходной файл при помощи xsl:value-of они нормально переносятся
(видимо как строки), однако если пытаться подвергнуть их преобразованию при помощи xpath функции number()
с последующим арифметическим преобразованием — получаем результат NaN. Однако если числа записаны в другой
форме все работает прекрасно. В спецификации по этому поводу сказано, что такая форма записи(IEEE 754)
поддерживается.

Буду весьма благодарен, если кто-нибудь поможет разрешить такую проблему.
Re: XSL не понимает числа в формате [мантисса]e[логарифм]
От: Fomka Россия  
Дата: 22.04.04 08:36
Оценка:
Здравствуйте, OriginalZealot, Вы писали:

В спецификации по этому поводу сказано, что такая форма записи(IEEE 754)
OZ>поддерживается.

В спецификации по этому поводу сказано, что

Function: number number(object?) 

The number function converts its argument to a number as follows:

1. a string that consists of optional whitespace followed by an optional minus sign followed by a Number followed by whitespace is converted to the IEEE 754 number that is nearest (according to the IEEE 754 round-to-nearest rule) to the mathematical value represented by the string; any other string is converted to NaN
2. boolean true is converted to 1; boolean false is converted to 0
3. A node-set is first converted to a string as if by a call to the string function and then converted in the same way as a string argument
4. an object of a type other than the four basic types is converted to a number in a way that is dependent on that type

А Number — это
Number    ::=    Digits ('.' Digits?)? | '.' Digits  
Digits    ::=    [0-9]+


Так что про экспоненциальную форму ничего не сказано. MSXML четко говорит NaN на экспоненциальную запись, а вот Built-In engine в XML SPY нормально переводит в число.
Re[2]: XSL не понимает числа в формате [мантисса]e[логарифм]
От: OriginalZealot Россия  
Дата: 24.04.04 03:14
Оценка:
Благодарю, однако, проблемы это не решает.
Re: XSL не понимает числа в формате [мантисса]e[логарифм]
От: DEMON HOOD  
Дата: 03.01.06 11:21
Оценка:
Здравствуйте, OriginalZealot, Вы писали:

OZ>Существует некоторый XML, в дереве которого лежат приблизительно такие вещи:


OZ> <coordinates>

OZ> <x>2.34296e-013</x>
OZ> <y>9.44124e-010</y>
OZ> <z>2.35912e-010</z>
OZ> </coordinates>

может нужно через запятую?
<x>2,34296e-013</x>
silent RSDN@Home 1.2.0 alpha [618] Windows XP 5.1.2600.65536
Re[3]: XSL не понимает числа в формате [мантисса]e[логарифм]
От: Lloyd Россия  
Дата: 11.01.06 11:43
Оценка:
Здравствуйте, OriginalZealot, Вы писали:

OZ>Благодарю, однако, проблемы это не решает.


Напиши функцию расширения для своего процессора.
... << RSDN@Home 1.1.4 stable rev. 510>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.