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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [XSLT]Замена элемента его потомками. 
:(
    Опции темы
Mef86
Дата 18.11.2011, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!
Есть такая xml
Код

<adc>
   <app>
    <qwe>
            <id>123</id>
             <we>222</we>    
         </qwe>
     </app>
     <app>
    <qwe>
               <id>345</id>
               <we>111</we>    
          </qwe>
      </app>
</adc>


мне ее нужно преобразовать в другую xml, чтоб на выходе получилось:

Код

<adc>
                  <qwe>
                      <id>123</id>
                       <we>222</we>    
                  </qwe>
</adc>
<adc>
                   <qwe>
                      <id>345</id>
                       <we>111</we>    
                  </qwe>
</adc>
>

Только начал разбираться с xsl, вот застрял на такой проблеме
PM MAIL   Вверх
джун
Дата 18.11.2011, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот это поможет тебе. Гарантированно.
PM MAIL   Вверх
diadiavova
Дата 18.11.2011, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Mef86, скопировать все узлы как есть, а для узла app копировать только узлы-потомки. Вот что-то вроде этого.
Код

<?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="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>

  <xsl:template match="app">
    <xsl:apply-templates/>
  </xsl:template>
</xsl:stylesheet>



Добавлено через 52 секунды
Mef86, только на будущее...
Модератор: Название темы должно отражать ее суть!


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


Новичок



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

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



Добрый вечер!
diadiavova, спасибо за помощь, но примерно так уже пробовал раньше и как раз не получалось сделать несколько тегов <adc>.

Он сейчас как корневой выходит... В этом-то и застрял. 

Как сделать чтоб в него (<adc>) копировалось содержимое остальных тегов и сам он в то же время не являлся корневым,  как <app> в приведенном примере, т.е. их несколько получалось?

P.S. Может немного некорректно спрашиваю просто начал разбираться с xsl  всего неделю назад. 

джун, спасибо. с for-each сейчас попробую. 
PM MAIL   Вверх
diadiavova
Дата 18.11.2011, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Mef86, то есть тебе надо app заменить на abc что ли?

Добавлено через 2 минуты и 7 секунд
Тогда шаблон для арр будет таким
Код


 <xsl:template match="app">
<abc>
    <xsl:apply-templates/>
</abc>
  </xsl:template>



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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