Вопрос по XSL

kuv

Guest
Вопрос по XSL

Я перевожу свой сайт на XML, хочется задать некоторые вопросы.
Допустим у меня есть элемент <text> содержащий некий корректный XML текст. Мне надо с помощью XSL отобразить, причем в этом тексте могут содержаться тэги для которых я хочу задать отображениею Например тег <xtable>***</xtable> должен преобразовываться в <table bgcolor=green><tr><td>Таблица</td></td>***</table>

Короче я так хочу сделать поддержку стилей, если еще можно сделать так чтоб теги которые не были переопределены отображались как дефолтный XHTML то вообще будет отлично. Напишите плиз пример XSL который отобразит вещь типа:
<text>
Abracadabra abracadabra<br/>
<xtable><xtr><xtd>TEXT!!!</xtd></xtr></xtable>
<img src='img/xxx.jpg'/>
<script>
alert('Error! ;-)');
</script>
</text>

Возможно заключить весь текст в CDATA.

-~{}~ 24.11.04 03:37:

И вот еще - какой параметр select нужен для <xsl:apply-templates/> чтобы он обработал все дочерние элементы кроме <menu>
 

slach

Новичок
ответ на первый вопрос, похоже ты не понимаешь зачем тебе XSL ...

ответ на второй вопрос, что-то вроде <xsl:apply-templates select="child::*[name()!='menu']"/>
 

kuv

Guest
Originally posted by slach
ответ на первый вопрос, похоже ты не понимаешь зачем тебе XSL ...
Думаю я вполне понимаю зачем, только я хочу использовать его еще и для поддержи стилей оформления. В основном с этим нет проблем, но мне необходимо иметь стилизованные таблицы, сейчас это реализовано через JavaScript. Но если сделать возможность писать вместо <script>w_table1('width="95%"');.........w_table2()</script> просто <xtable> - это существенно упростит жизнь.

Если есть какието возражения по поводу такого использования XSL - принимаю только с контрпредложениями =)

И еще: чтото вроде <xsl:apply-templates select="child::*[name()!='menu']"/> не работает - при этом элемент <menu> тоже отображается =( Я ведь такую штуку пробовал уже. Если точнее мне надо сначала отобразить дочерний тег <menu>(ну с этим проблем нет), а потом все остальные(то что выше отображает <menu> второй раз).
 

chameleon

Новичок
если еще можно сделать так чтоб теги которые не были переопределены отображались как дефолтный XHTML то вообще будет отлично.
гуглить на "XSLT Identity Transformation" (уже пора в ФАК это заносить)...
чтобы он обработал все дочерние элементы кроме <menu>
попробуй
PHP:
<xsl:apply-templates select="*[local-name()!='menu']"/>
-~{}~ 24.11.04 12:52:

стилизованные таблицы, сейчас это реализовано через JavaScript.
а почему не CSS?
 

kuv

Guest
Не CSS потому что мне надо выводить стилизованные графические таблицы, например делать у всех таблиц графический заголовок, для чего надо добавлять дополнительную строку <tr>...... CSS этого не дает, XSL - да =)

-~{}~ 24.11.04 23:03:

Всем спасибо вроде разобрался.
Если что - буду опять приставать с распросами =)))
 

matross

Новичок
А ты попробуй весь текст с html форматированием занести в один node типа
<text>

Some text and <a href='index.php'>Link</a> and
<table>
<tr><Td width=100%>tEXT</td></tr>
</table>

</text>
а при выводе этого нода делай disable-output-escaping
Короче поищи про это...
 

chameleon

Новичок
А ты попробуй весь текст с html форматированием занести в один node типа <text>
и что?! при чем тут DOE вообще? (кста, лучше забудь этот атрибут и ни-и-икада не вспоминай).
 

matross

Новичок
Автор оригинала: chameleon
и что?! при чем тут DOE вообще? (кста, лучше забудь этот атрибут и ни-и-икада не вспоминай).
А при том, что зачем создавать теги, которые потом нужно будет преобразовывать в хтмл, лучше сразу писать хтмл, ну и выводить его... Это гараздо легче, чем то, что было предложено в начале топика... Типа <xtable> приеобразовывать в <table>. Что скажешь?
 

chameleon

Новичок
которые потом нужно будет преобразовывать в хтмл, лучше сразу писать хтмл
ага давайте код перестанем объединять в процедуры/классы, а будем его писать везде где процедура должна вызываться? про taglibs слышали? вот это что-то подобное но на уровне xslt.
 

matross

Новичок
Автор оригинала: chameleon
ага давайте код перестанем объединять в процедуры/классы, а будем его писать везде где процедура должна вызываться? про taglibs слышали? вот это что-то подобное но на уровне xslt.
Смотри
 

slach

Новичок
матрос, поумерьте пожалуйста свой пыл... и воздержитесь временно от высказываний в форуме, прошу вас

топик который вы показываете вообще абсурден
поскольку вы там весь топик пытались разрбраться где у ВАС была ошибка в коде при использование sql2xml ... при этом изначально вы

сейчас своими высказываниями не очень в тему, тоже запутываете дискуссию...

автору вопроса, данные в <xtable> они у вас полностью дублируют структуру обычной HTML table ??? т.е. таже самая HTML таблица, но вам хочется ее разукрасить в зависимости от условий ???

тогда вам действительно надо решать эти проблемы через CSS
и не надо писать сложных XSLT преобразований, которые будут расставлять сам цвета и шрифты...
 
Сверху