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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Avenger, 17 апр 2008.

  1. Avenger

    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()"/> но только не работает что-то.



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

    Vovochka Гость

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

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

    Avenger Гость

    нормальный 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.
     
  4. Avenger

    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)"/>
    или второй вариант с использованием шаблонов
     
Загрузка...

Поделиться этой страницей