Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Как вывести XML аттрибуты через XSL

Ответить
Настройки темы
[решено] Как вывести XML аттрибуты через XSL

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85


Конфигурация

Профиль | Отправить PM | Цитировать


Пишем test.xsl:
PHP код: Выделить весь код

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" standalone="yes"/>

<xsl:template match="*">
<html><head></head><body>
<xsl:apply-templates mode="line"/>
</body></html>
</xsl:template>

<xsl:template match="*" mode="line">
<div>
<xsl:call-template name="graft"/>
<xsl:apply-templates select="." mode="item"/>
<xsl:apply-templates mode="line"/>
</div>
</xsl:template>

<xsl:template match="*" mode="item">
<xsl:value-of select="name()"/>
</xsl:template>

<xsl:template name="graft">
<xsl:apply-templates select="ancestor::*" mode="tree"/>
&#хA0;
</xsl:template>

<xsl:template match="*" mode="tree">
&#хA0;
</xsl:template>

</xsl:stylesheet>

Вот такой XSL позволяет вывести псевдодеревцем любой XML документ.
Но атрибуты не выводятся.
Например, пишем test.xml:
Код: Выделить весь код
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>
<something a="a" b="a">
<c/>
</something>
</root>
при его выводе, получим
Код: Выделить весь код
something
      c
А где "а" и "b"?
В теле они есть, но их не видно. Как сделать, чтобы их было видно?

Отправлено: 15:33, 08-11-2006

 

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Всё, спасиб, решил.
PHP код: Выделить весь код

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" standalone="yes"/>

<xsl:template match="*">
<html><head></head><body>
<xsl:apply-templates mode="line"/>
</body></html>
</xsl:template>

<xsl:template match="*" mode="line">
<div>
<xsl:call-template name="graft"/>
<xsl:apply-templates select="." mode="item"/>
 <xsl:for-each select="@*">
<div>
 <xsl:call-template name="graft"/>
 <i>
 <xsl:value-of select="name()"/>
 <xsl:text> (attribute) </xsl:text>
 </i>
</div>
 </xsl:for-each>
<xsl:apply-templates mode="line"/>
</div>
</xsl:template>

<xsl:template match="*" mode="item">
<b><xsl:value-of select="name()"/></b>
</xsl:template>

<xsl:template name="graft">
<xsl:apply-templates select="ancestor::*" mode="tree"/>
&#хA0;
</xsl:template>

<xsl:template match="*" mode="tree">
&#хA0;
</xsl:template>

</xsl:stylesheet>


Отправлено: 16:06, 08-11-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Как вывести XML аттрибуты через XSL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ноут: как вывести звук иначе чем через разъём для наушников? Yewgeniy Хочу все знать 3 12-07-2009 13:01
Что еще можно сделать с XML + XSLT + XSL FADE Вебмастеру 247 13-04-2008 20:33
[решено] проверка XML-файла на соответствие XML schema в IE 6 и Firefox 2 dimait Вебмастеру 4 23-08-2007 02:02
xsl проверка существования тега в xml FADE Вебмастеру 3 23-04-2007 11:29
XML + XSL + PHP => HTML, Как передать бинарный код рисунка ? Lexxx_HU Вебмастеру 5 02-03-2007 17:55




 
Переход