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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Занесение текста в имя тега 
V
    Опции темы
davidoffpk
Дата 16.3.2010, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день. Подскажите, а возможно ли, например, из такого xml-кода:
Код

<Студенты>

<Судент>
<Номер> 1 </Номер>
<Имя> Павел </Имя> 
</Судент>

<Судент>
<Номер> 3 </Номер>
<Имя> Андрей </Имя> 
</Судент>

<Судент>
<Номер> 8 </Номер>
<Имя> Иван </Имя> 
</Судент>

</Студенты>


сделать следующий xml-код:
Код

<Студенты>

<Судент1>
<Имя> Павел </Имя> 
</Судент>

<Судент3>
<Имя> Андрей </Имя> 
</Судент>

<Судент8>
<Имя> Иван </Имя> 
</Судент>

</Студенты>


Важно занести номер именно в имя тега, а не в атрибут. Естественно количество студентов и их номера могут быть разные.
PM MAIL   Вверх
diadiavova
Дата 18.3.2010, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(davidoffpk @  16.3.2010,  14:23 Найти цитируемый пост)
Важно занести номер именно в имя тега, а не в атрибут. 

Прежде чем будешь это делать хорошо подумай(поверь: это хороший совет). Если не передумал, то вот
Код

<?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="/">
      <Студенты>
        <xsl:apply-templates/>
      </Студенты>
    </xsl:template>

  <xsl:template match="Студент">
    <xsl:element name="{concat('Студент', number(./Номер))}">
      <xsl:copy-of select="./Имя"/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

Там у тебя в примере кода вместо "Студент" написано "Судент", я ориентировался на правильный вариант(если что можешь исправить smile ), кроме того у меня там присутствует преобразование номера студента в числовой тип, это сделано из-за того, что у тебя в документе присутствуют пробелы рядом с числами и построить имя не получилось из-за этого, но если в документе номер будет указан без пробелов, то можно без этого преобразования обойтись. Если в реальном документе вместо номера будет что-то другое, то пробелы естественно удалять придётся иначе.


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


Новичок



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

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



 smile Спасибо большое, я как-то забыл про конкатенацию)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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