Несколько вопросов по XSLT и XML

Avenger
На сайте с 22.07.2007
Offline
47
820

Начал разбираться с XSLT, возникло пару вопросов:

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

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

С уважением, Андрей Головнев (http://golovnev.by/)
E
На сайте с 14.09.2007
Offline
24
#1
Avenger:
1. есть вот такой вот тег в xml: <total>Total (4 wickets, 50 overs) 310</total>, возможно ли средствами xslt извлечь из него инфу так, чтобы на странице отображалось в таком виде: "310/4 (50 ov.)"

см. в сторону функций substring, substring-before, substring-after. Но тут повыкореживаться придется, скорее всего - я бы лучше "подправил" средства, генерящие исходный xml, если есть такая возможность: лучше всего разделить содержимое total на отдельные сущности (в отдельные теги или атрибуты).

Avenger:

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

xsl:if поможет.

lazio
На сайте с 05.10.2006
Offline
47
#2
Avenger:
Начал разбираться с XSLT, возникло пару вопросов:
2. как сделать проверку деления на ноль средствами xslt? если ноль то нужно выводить прочерк, если не ноль, то результат деления.

Вот конструкция:

<xsl:choose>

<xsl:when test="_Условие_">

_Действия при верном условии_

</xsl:when>

<xsl:otherwise>

_Действия при ложном условии_

</xsl:otherwise>

</xsl:choose>

COMFI - Начни Зарабатывать! (http://affiliate.comfi.ru/a2/466735/Program-Overview)
Ayavryk
На сайте с 11.10.2003
Offline
209
#3
Avenger:
возможно ли средствами xslt извлечь из него инфу так, чтобы на

Через ж... можно, но так не делают. Набор строковых операций в XSLT крайне ограничен. И все решения получаются ресурсоемкими и громоздкими. Поэтому обычно все подобные вещи делают не в XSLT, а до того. В принципе если у вас Java или NET, в XSLT можно добавлять любые расширения, в частности всякие строковые операции на других языках. Но это не приветствуется.

Avenger:
. как сделать проверку деления на ноль средствами xslt?

<xsl:choose>

<xsl:when test="x = 0">

<xsl:text>-</xsl:text>

</xsl:when>

<xsl:otherwise>

<xsl:value-of select="number(y) div number(x)"/>

</xsl:otherwise>

</xsl:choose>

Avenger:
3. Как в xslt извлечь имя тега xml?

Вы применили правило непонятно к чему.

нужно <xsl:value-of select="name(tutorial/title)"/>

Впрочем непонятно зачем нужно вытаскивать имя тега, которое и так известно.

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий