| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > Как вернуть значение из темплейта |
| Автор: sol78 19.4.2009, 18:24 | ||
Помогите правельно вернуть значение из темплата:
Почему на выходе в <xsl:value-of select="$curr"/> я собираю весь 'мусор' (значения других переменных включая нужное). Как решить эту проблему? |
| Автор: sir_nuf_nuf 20.4.2009, 11:10 |
| "Значение" темплейта составляется из всех данных которые были выведены при его обработке. Наприрмер, простые тэги (не xsl), все value-of и т.п. которые не лежали внутри variable Так же, замечу, что если у вас режимом обработки "по-умолчанию" для любого XML элемента - это вывод его содержимого. Проверьте содержимое вашего темплейта на такие конструкции. Добавьте пустой шаблон для обработки тегов по умолчанию |
| Автор: sol78 20.4.2009, 11:23 |
| sir_nuf_nuf, немогли бы вы обьяснить что такое режим обработки "по умолчанию" для любого XML элемента и как ето проверить? |
| Автор: sir_nuf_nuf 20.4.2009, 22:57 | ||||||||||
| sol78, ну есть два способа вызова темплейтов 1) call-template - когда вы явно указываете имя темплейта которой вызывать 2) apply-templates - когда XSLT сам выбирает темплейты подходящие под обрабатываемые тэги. т.е. темплейты описываются как
или
а XSLT движок сам выбирает какой темплей применить в зависимости от тэгов. (наприрмер первый темплейт более специфичен (точнее указано множество подходящих тегов), поэтому к тэгам вида /aa/bla:bu - будет применен именно он, ко всем тэгам в пространстве имен "bla", за исключением тех которые попадают в первый пункт будет применен второй темплейт. XSLT движок имеет встроенный темплей по умолчанию что-то типа такого
Срабатывание этого темплейта приводит к выводу текста тэга (и его аттрибутов) без всякой разметки.. т.е.
будет выведено как
проверьте, может у вас похожий вывод. |