Наследование базового шаблона

Статус
Закрыто для дальнейших ответов.

Seneka

Новичок
Регистрация
26.05.2010
Сообщения
1
Нужно сделать наследование xslt шаблонов аналогично Джанговскому.
Шаблон-подкласс расширяет базовый шаблон, заменяя пустой внутренний под-шаблон конкретным содержимым с собственной разметкой.
Требуется примерно следующее:

base.xsl
Код:
<?xml version = "1.0" encoding="utf-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
    BEFORE
    <p>
    <xsl:template match="content" ></xsl:template>
    </p>
    AFTER
</xsl:template>
</xsl:stylesheet>
test.xsl
Код:
<?xml version = "1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="base.xsl" />
<xsl:template match="content">
    <xsl:for-each select="item">
        <xsl:value-of select="@name" /><br />
    </xsl:for-each>
    <xsl:apply-imports />
</xsl:template>

</xsl:stylesheet>
test.xml
Код:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<content>
    <item name="Item1" />
    <item name="Item2" />
    <item name="Item3" />
</content>
Требуемый результат
Код:
BEFORE
<p>
 Item1<br />
 Item2<br />
 Item3<br />
</p>
AFTER
Желательно реализовать строго через наследование, а не include.
Например, вывести сначала Before, затем content, затем after - это концептуально не то, что нужно.

Пробовал по документации, но ни одного даже неправильного вывода не получил. Только ошибки, типа здесь нельзя temlate, там нельзя import, тут нельзя что-то иное. В общем, ничего нельзя.
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
http://raleigh.ru/XML/XSLTutorial/contents.htm
 
Статус
Закрыто для дальнейших ответов.
Верх Низ