Как обработать функцией substring() в XSLT переменную извлеченную из XML???

xml xslt cтроки

есть xml код:
<scores>
<total>Total (4 wickets, 50 overs) 310</total>
</scores>

нужно отобразить на странице его в таком виде "310/4 (50 overs)"
для этого я пишу такой xslt:
<xsl:value-of select="substring('здесь должна быть строка заключенная между тегами <total>', 0, 3)"/>

как туда впихнуть эту строку? ее нужно не написать, а именно извлечь из xml.
спасибо.
Ответы:
<xsl:value-of select="substring(путь к узлу,номер символа,длина подстроки)"/>.
«Путь к узлу» - путь тегу (или атрибуту) от текущего контекста. Например, если <scores> - это корневой узел, то можно написать «/scores/total», а если выше был определён контекст узла scores, то здесь достаточно будет написать просто «total». Никакие кавычки здесь не пишутся!
«Номер символа» - номер с которого нужно вырезать строку (если не ошибаюсь, с единицы).
«Длина подстроки» - сколько символов вырезать.
Например:
<xsl:value-of select="substring(/scores/total,19,8)"/> выдаст строку «50 overs».
Но это всё будет плохо работать. Если, например, вместо «4» будет написано «10», всё сдвинется на один символ и получится неправильный результат.
Надёжнее будет пользоваться функциями substring-after и substring-before.


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.