Несколько вопросов по Xslt

  • Автор темы Avenger
  • Дата начала
A

Avenger

1. есть вот такой вот тег в xml: <total>Total (4 wickets, 50 overs) 310</total>, возможно ли средствами xslt извлечь из него инфу так, чтобы на странице отображалось в таком виде: "310/4 (50 ov.)"

2. как сделать проверку деления на ноль средствами xslt? если ноль то нужно выводить прочерк, если не ноль, то результат деления.

3. Как в xslt извлечь имя тега xml?
например у меня есть такой xml-код:

<?xml version="1.0" encoding="WINDOWS-1251"?>
<tutorial>
<title>"Заметки об XSL"</title>
<author>Леонов Игорь Васильевич</author>
</tutorial>

нужно отобразить на странице надпись "title" и нужно обязательно ее выдрать из xml. читал в какой то статье, что вот так нужно <xsl:value-of select="tutorial/title/name()"/> но только не работает что-то.



очень надеюсь на вашу помощь. спасибо.
 
V

Vovochka

<total>Total (4 wickets, 50 overs) 310</total>
Кажется мне, что ваш xml is very bad :(
Ничего кроме цифр (в вашем примере) в нем не должно было быть.

Да и все ваши математические операции вытекают оттуда же.
Неужели в xml нельзя писать уже конечные значения?
 
A

Avenger

Кажется мне, что ваш xml is very bad sad.gif
Ничего кроме цифр (в вашем примере) в нем не должно было быть.

Да и все ваши математические операции вытекают оттуда же.
Неужели в xml нельзя писать уже конечные значения?
нормальный xml, у меня в принципе выбора не было, какой дали, мое дело преобразовать его в xhtml, с чем я вроде справился, а этот вопрос я решил так:
<xsl:value-of select="substring-after(inningsinfo/match/innings/total, ') ')"/>/<xsl:value-of select='substring-before(substring-after(inningsinfo/match/innings/total, "("), " w")'/>
(<xsl:value-of select='substring-before(substring-after(inningsinfo/match/innings/total, ", "), "ers")'/>.)

Почему бы не начать с документации? На просторах инета ее ой как достаточно.
на чтение документации не было времени, сразу с нуля начал делать, что непонятно было смотрел, искал, спрашивал, теперь уже более менее разобрался в xslt.
 
A

Avenger

ответ на 2-ой мой вопрос:

<xsl:choose>
<xsl:when test="cricketbbbfeed/currentscores/maxovers = 0">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:eek:therwise>
<xsl:value-of select="format-number(((cricketbbbfeed/currentscores/target - 1) div cricketbbbfeed/currentscores/maxovers),'#.00')"/>
</xsl:eek:therwise>
</xsl:choose>

ответ на 3-ий вопрос:
<xsl:value-of select="name(tutorial/title)"/>
или второй вариант с использованием шаблонов
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!