XSLT шаблон, html коды

alex-drob

Новичок
XSLT шаблон, html коды

Решил сделат сайт чтоб на пхп генерировать xml и шаблон на xslt
Всё было нормально пока не понадобилось сделать форматирование в нутри текста

вот например
index.xml
Код:
<?xml version="1.0" encoding="WINDOWS-1251"?>
<?xml-stylesheet type='text/xsl' href='main.xsl'?>
<root>
	<title>Страничка</title>
	<content>
		Текст<b>жирный</b> текст
	</content>
</root>
и main.xsl
Код:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">
<html>
<head><title><xsl:value-of select="/root/title"/></title></head>
<body>
	<xsl:apply-templates select="/root/content"/>
</body>
</html>
</xsl:template>

<xsl:template match="/root/content">
	<xsl:value-of select="."/>
</xsl:template>

</xsl:stylesheet>
как можно сделать чтоб текст выводился жирным?

-~{}~ 06.12.09 13:23:

вопрос снят, разобрался
 

slach

Новичок
есть такая штука как xsl:copy ;)
ну и вообще вопрос классический
хорошо что люди гуглем пользоваться умеют

ну и вот полезная ссылка

http://wwbota.free.fr/XSLT_models/README.html
 

FB3

Новичок
Даже если вставить xsl:copy, все равно не получится ожидаемый результат.

В данном случае я бы сделал 4 шаблона. Первый создает теги <html>. Второй чтобы создавать <head> и вставлять <title>. Третий - чтобы вставлять <body> и вставлять внутрь него <content>. И четвертый, который копирует все остальное, т.е. в том числе теги <b> в данном случае.

Вообщем, стоит почитать где-то основы XSLT, в данный момент ты совсем не понимаешь принципов работы и пишешь такой код, что и смотреть ужасно и не работает ничего.
 

alex-drob

Новичок
Код:
<?xml version="1.0" encoding="windows-1251" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="root">
	<html>
		<xsl:apply-templates select="title"/>
		<xsl:apply-templates select="content"/>
	</html>
</xsl:template>

<xsl:template match="title">
	<head><title><xsl:value-of select="."/></title></head>
</xsl:template>

<xsl:template match="content">
	<body>
		<xsl:apply-templates />
	</body>
</xsl:template>

<xsl:template match="content">
	<xsl:copy-of select="."/>
</xsl:template>

</xsl:stylesheet>
так будет правильно?
 

FB3

Новичок
Ну по идее работать будет.
Вместо последнего шаблона стоит написать шаблон, который копирует все ноды:
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
 
Сверху