Здравствуйте уважаемые 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)
поддерживается.
Буду весьма благодарен, если кто-нибудь поможет разрешить такую проблему.
Здравствуйте, 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 нормально переводит в число.
Здравствуйте, 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
Здравствуйте, OriginalZealot, Вы писали:
OZ>Благодарю, однако, проблемы это не решает.
Напиши функцию расширения для своего процессора.
... << RSDN@Home 1.1.4 stable rev. 510>>