Сохранение атрибутов при XSLT трансформации

kuv

Guest
Сохранение атрибутов при XSLT трансформации

Как добиться того, чтоб при обработке тега выводился другой, но с теми же атрибутами?
Например чтоб <link href="http://go.to.home">Text</link> заменялся на нужную ссылку, но при этом могут быть еще другие произвольные атрибуты, можно сделать так чтоб они сохранялись?
 

slach

Новичок
Jer
при всем

вопрос про XSLT

решение примерно такое


<xsl:template match="link">
<a>
<xsl:for-each select="@*">
<xsl:copy/>
</xsl:for-each>
</a>
</xsl:template>
 

jer

...
Да я то вопрос понял, но автор его задал не достаточно четко. считай что я придрался ;)
 

kuv

Guest
Гуд, а я думал копировать тока элементы можно=)
Кстати легче тогда сделать <xsl:copy-of select="@*"/>

Вот еще над какой вещью бьюсь: есть набор элементов, надо их обработать несколькими разными шаблонами в разных местах. Если точнее - те у которых есть атрибут mode1 надо вывести в одном месте, у которых mode2 - в другом, причем один эдемент может иметь оба атрибута. Но собственно проблема в том что надо обрабатывать разными шаблонами, можно сделать их именованными, но у меня почемуто получаются неработающие конструкции. Был также вариант с помощью <xsl:with-param> передавать в шаблон текущий режим обработки, но не знаю почему то что я насочинял выдает ошибку null.
Может кто знает как помочь?
 

slach

Новичок
здается мне вы савсем мало читали туториалы на zvon.org

<xsl:apply-templates select="item[@mode='mode1']" mode="mode1"/>

<xsl:apply-templates select="item[@mode='mode2']" mode="mode2"/>

<xsl:template match="item" mode="mode1">
...
</xsl:template>

<xsl:template match="item" mode="mode2">
...
</xsl:template>
 

kuv

Guest
Каюсь, читал в основном w3.org =) Я принципиально придерживаюсь спецификации оттуда, так что пойду гляну есть ли там такая штука. Я юзаю firefox, так что если нет то он докучи может не поддерживать такую фичу.
 

slach

Новичок
w3c это спецификация

а zvon.org - там туториалы конкретные... которые позволяют лучше понять суть

посмотрите XSLT 1.0 Reference
или скачайте оттуда CHM файлик...
очень удобно когда все с примерами

и еще книгу Валикова Дмитрия "Технология XSLT" почитайте...
весьма полезно для понимания и по русски
 
Сверху