Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Vingrad CMS > XInclude


Автор: sergejzr 9.9.2006, 03:19
Дайте работающий пример

1.xml - главный файл
2.xml- подгружаемый файл
x.xsl - шаблон, которы подгружается из 1 и в котором отображаются значения из 2

ТАк я думал пойдёт, но он мне выдаёт xi:include  вместо dict
Код

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="x.xsl"?>
<test xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="2.xml" />
</test>


Код

<?xml version="1.0" encoding="UTF-8"?>
<dict>
<myvalue>345345</myvalue>
</dict>


Код

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xml [ <!ENTITY nbsp " "> <!ENTITY middot "·">]>

<xsl:stylesheet
  version="1.0" exclude-result-prefixes="xsl"

                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

<xsl:template match="cms">
<xsl:for-each select="/test/*">jjhj  <xsl:value-of select="name()" /><br/></xsl:for-each>
<br/>
<xsl:value-of select="/test/dict/myvalue" />
</xsl:template>




</xsl:stylesheet>

Автор: Sardar 9.9.2006, 03:33
sergej.z, ты забыл связать xi неймспейс (xmlns:xi="http://www.w3.org/2001/XInclude"), браузер просто не знает что это.

Автор: sergejzr 9.9.2006, 04:03
А, да, это я в посте не добавил, а примере стоит у меня. Не идёт всё равно...

Автор: sergejzr 9.9.2006, 12:45
Было бы неплохо, если кто нибудь попробовал бы написать работающий пример и скинул архивчик

Автор: Sardar 9.9.2006, 15:35
Твой пример совершенно рабочий smile
Просто нужно помнить, что браузер не будет выполнять XInclude (нужны привилегии), подобные трансформации должны происходить на сервере. Нацарапал трансформер, что бы показать что всё работает.

P.S. форум .tar.bz2 не принимает, надо бы фильтры обновить, архив то всё таки лучше.

Автор: sergejzr 9.9.2006, 15:59
Цитата(Sardar @  9.9.2006,  13:35 Найти цитируемый пост)
Просто нужно помнить, что браузер не будет выполнять XInclude (нужны привилегии), подобные трансформации должны происходить на сервере. Нацарапал трансформер, что бы показать что всё работает.

Хмм.. ну тогда нам это не подойдёт... мы же хотим на клиенте кэшировать. Значит будем в шаблоне document() ом грузить. Значит для Оперы будет отдельный шаблон.
Спасибо за инфу.

Автор: Wowa 23.2.2007, 12:44
Ни у кого мнение не поменялось по этому вопросу?

Добавлено @ 12:45 
Цитата(sergejzr @  9.9.2006,  13:59 Найти цитируемый пост)
Значит будем в шаблоне document() ом грузить.

ты имеешь ввиду на стороне сервера или на стороне клиента через Javascript?

Автор: sergejzr 23.2.2007, 13:07
Для опер придётся делать document() на сервере. Остальные браузеры делятся на новых и старых. Новые могут всё на клиенте, длая старых весь ХТМЛ полностью формируется на сервере. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)