xmlhack.ru XML-форумы
Обсуждение XML и связанных с ним технологий

Удалить тег,но оставить его детей


Автор Сообщение
Sov
Гость




[13907] Вс Июл 12, 2009 06:35
Удалить тег,но оставить его детей
Есть список с такой структурой
число уровней может быть любым
Надо удалить теги "а",но оставить текстовое содержимое
Подскажите хотя бы идею как сделать,please)

Код:


...
<ul>
   <li>
       <a href="#">Элемент 1.1</a>
       <ul>
               <li>
                    <a href="#">Элемент 2.1</a>
                </li>
                <li>
                    <a href="#">Элемент 2.2</a>
                </li>
       </ul>
   </li>
</ul>
...


Код:


...
<ul>
   <li>
       Элемент 1.1
       <ul>
               <li>
                    Элемент 2.1
                </li>
                <li>
                    Элемент 2.2
                </li>
       </ul>
   </li>
</ul>

aps
Новичок

Зарегистрирован: 10.07.2009
Сообщения: 4

Посетить сайт автора
[13909] Вс Июл 12, 2009 19:26

Сначала накладываете идентичное преобразование:
http://en.wikipedia.org/wiki/Identity_transform
Оно копирует полностью входной XML в выходной, за исключением тех узлов, которые описаны отдельно. Затем определяете шаблоны тех элементов, которые нужно дополнительно обрабатывать. В данном случае <a>.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Идентичное преобразование -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

<!-- Обработчик ссылок -->
<xsl:template match="a">
<xsl:apply-templates/>
</xsl:template>

</xsl:stylesheet>

!!! Обратите внимание, что почиканы будут все ссылки, даже вне нужного вам UL. Если это лишнее, можно переписать обработчика так:

<xsl:template match="ul//a">
<xsl:apply-templates/>
</xsl:template>
Sov
Гость




[13910] Пн Июл 13, 2009 06:07

Спасибо, то что нужно)
Fireball
Наставник

Зарегистрирован: 26.02.2008
Сообщения: 282

[13914] Вт Июл 14, 2009 01:08

aps, ты прям методические пособия выкладываешь Smile
aps
Новичок

Зарегистрирован: 10.07.2009
Сообщения: 4

Посетить сайт автора
[13915] Вт Июл 14, 2009 13:55

Методические пособия ( http://erum.ru/rubr/xslt/ ) увы, заглохли.