Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.69.152] |
|
Сообщ.
#1
,
|
|
|
Я только начинаю работать с xml/xslt. И у меня возникли вот такие проблемы.
Имеется XML файл: <?xml version="1.0" encoding="windows-1251"?> <?xml-stylesheet type='text/xsl' href='test_vir.xsl'?> <drwebvirustop period="24" top="5" updatedutc="2006-05-14 08:02:01"> <item> <vname>Win32.HLLM.Perf</vname> <place>1</place> <percents>28.7912969678266</percents> </item> <item> <vname>Win32.HLLM.MyDoom</vname> <place>2</place> <percents>24.9172131779955</percents> </item> <item> <vname>Win32.HLLM.Netsky</vname> <place>3</place> <percents>17.2042280688219</percents> </item> <item> <vname>Trojan.Bankfraud.272</vname> <place>4</place> <percents>13.3539078774786</percents> </item> <item> <vname>Win32.HLLM.Beagle</vname> <place>5</place> <percents>5.23539850320191</percents> </item> </drwebvirustop> И я обрабарываю его вот таким xslt-преобразованием - строю табличку: <?xml version="1.0" encoding="windows-1251"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <table border="1"> <td colspan="3"> <p align="center"> <b>Топ-<xsl:value-of select="drwebvirustop/@top"/></b> на <b><xsl:value-of select="drwebvirustop/@updatedutc"/> (<xsl:value-of select="drwebvirustop/@period"/>h.)</b> </p> </td> <xsl:apply-templates select="//item"/> </table> </xsl:template> <xsl:template match="item"> <tr> <td> [B]<xsl:value-of select="place"/>.[/B] </td> <td> <b><xsl:value-of select="vname"/></b> </td> <td> <xsl:value-of select="percents"/> % </td> </tr> </xsl:template> </xsl:stylesheet> 1я проблема) Когда открываю xml эксплорером - ok, когда firefox'ом - получаю сообщение Ошибка загрузки таблицы стилей: Ошибка разбора таблицы стилей XSLT. 2я проблема) Когда я пробую использовать XPath выражение в селекте, например <xsl:value-of select="count(place)"/>. получаю сообщение Неизвестный метод. -->count(place<--) Что не так. Если можно, помогите со второй проблемой в свете того, что хочу уменьшить к-во знаков в процентах. |
Сообщ.
#2
,
|
|
|
Цитата belochub @ Попробуй использовать другой namespace в xsl-файле, например:Что не так <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> Цитата belochub @ Используй функцию format-number(value,'pattern'): хочу уменьшить к-во знаков в процентах <xsl:value-of select="format-number(percents,'#.00')"/> % |
Сообщ.
#3
,
|
|
|
Спасибо.
Что интересно, после изменеия namespace файл стал открываться firefox'ом (как простой текст). Но перестал открываться explorer'ом. После добавления <xsl:output method="html" encoding="windows-1251"/> firefox стал отображать таблицу (эксплорер - как раньше(в смысле, не открывает )). |
Сообщ.
#4
,
|
|
|
<xsl:output> надо всегда использовать, когда хочешь получить данные в сериализованном виде.
Цитата belochub @ Странно, я только эксплорером и проверяла - все работает. А версия IE какая? эксплорер - как раньше(в смысле, не открывает) |
Сообщ.
#5
,
|
|
|
Цитата silentium @ А версия IE какая? 5.0 |
Сообщ.
#6
,
|
|
|
Цитата belochub @ У IE 5.0 встроенный xslt-процессор, который использует свой диалект XSLT (как раз тот, который ты вначале использовал - WD-xsl). Этот диалект отличается от спецификации XSLT, поэтому и не работает (если ссылаться на http://www.w3.org/1999/XSL/Transform). Поэтому для IE скачай и установи MSXML 5.0 |
Сообщ.
#7
,
|
|
|
Цитата silentium @ Цитата (belochub @ Сегодня, 12:36) 5.0 У IE 5.0 встроенный xslt-процессор, который использует свой диалект XSLT (как раз тот, который ты вначале использовал - WD-xsl). Этот диалект отличается от спецификации XSLT, поэтому и не работает (если ссылаться на http://www.w3.org/1999/XSL/Transform). Поэтому для IE скачай и установи MSXML Поставил 6й эксполорер - работает |