Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [XSLT] Преобразование в многомерную структуру 
:(
    Опции темы
SwordOfDeath
  Дата 23.9.2010, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Привет, Возможно ли сделать такое преобразование и если можно то укажите путь истинный = ):

Из вот этого:
Код

<element id="one"/>
<element id="two" parent="one"/>
<element id="three"/>
<element id="four" parent="two"/>


Сделать вот это:
Код

<element id="one"/>
    <element id="two">
        <element id="four" parent="two"/>
    </element>
</element>
<element id="three"/>

PM MAIL   Вверх
diadiavova
Дата 24.9.2010, 00:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Код

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
        <tree>
            <xsl:apply-templates select="//element[not(@parent)]"/>
        </tree>
    </xsl:template>
    <xsl:template match="//element | //element/@*">
        <xsl:variable name="id" select="@id"/>
        <xsl:copy>
            <xsl:apply-templates select="//element[@parent = $id] | @*"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SwordOfDeath
Дата 24.9.2010, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Спасибо огромное!
А чем отличаеться:
Код

//element | //element/@*

от
Код

//element | @*

И как возможно скопировать все параметры не указывая их поименно?
PM MAIL   Вверх
diadiavova
Дата 24.9.2010, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(SwordOfDeath @  24.9.2010,  01:57 Найти цитируемый пост)
А чем отличаеться:

Контекстом. Первый вариант описан для шаблона, контекстом которого является весь документ, поэтому в него могут попасть и другие атрибуты, которые(возможно) надо обрабатывать иначе, на этот случай я описал более конкретно, хотя это не всегда будет необходимо, а второй вариант описан внутри шаблона и контекстом для него может быть либо нужный элемент, либо такой же атрибут(у которого собственных атрибутов быть просто не может).
Цитата(SwordOfDeath @  24.9.2010,  01:57 Найти цитируемый пост)
И как возможно скопировать все параметры не указывая их поименно? 

Не понял. Параметры чего?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SwordOfDeath
Дата 24.9.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Спасибо! Столько времени мне уделили, премного благодарен
Цитата(diadiavova @  24.9.2010,  08:54 Найти цитируемый пост)
Цитата(SwordOfDeath @  24.9.2010,  01:57 )
И как возможно скопировать все параметры не указывая их поименно? 

Не понял. Параметры чего? 

Похоже вот это делает то что мне нужно(параметры с атрибутами попутал): <xsl:copy-of select="@*"/>
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.