![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
Moonfall |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.6.2006 Репутация: нет Всего: нет |
вобшем такая проблема. Есть такой хмл:
<records> <record> <SRC_URL>http://www.j2mepolish.org/devices/Alcatel/One_Touch_735i.html</SRC_URL> <DATES>2006-06-06 17:25:40</DATES> <PHONE_NAME>Alcatel</PHONE_NAME> <MODELS>One_Touch_735i</MODELS> <PROPERTY>Screen-Size (width x height)</PROPERTY> <VALUE1>128x128</VALUE1> </record> <record> <SRC_URL>http://www.j2mepolish.org/devices/Alcatel/One_Touch_735i.html</SRC_URL> <DATES>2006-06-06 17:25:40</DATES> <PHONE_NAME>Alcatel</PHONE_NAME> <MODELS>One_Touch_735i</MODELS> <PROPERTY>Bits per Pixel</PROPERTY> <VALUE1>12 (4,096 colors)</VALUE1> </record> </records> Я получаю: <device-list> <device manufacturer="Alcatel" name="One_Touch_735i" src-url="http://www.j2mepolish.org/devices/Alcatel/One_Touch_735i.html" retrieval-time="2006-06-07 13:33:40"> <property name="Screen-Size (width x height)" value="128x128"/> </device> <device manufacturer="Alcatel" name="One_Touch_735i" src-url="http://www.j2mepolish.org/devices/Alcatel/One_Touch_735i.html" retrieval-time="2006-06-07 13:33:40"> <property name="Bits per Pixel" value="12 (4,096 colors)"/> </device> </device-list> С помощью такого кода хсл: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="records"> <device-list> <xsl:for-each select="record"> <device> <xsl:attribute name="manufacturer"><xsl:value-of select="PHONE_NAME"/></xsl:attribute> <xsl:attribute name="name"><xsl:value-of select="MODELS"/></xsl:attribute> <xsl:attribute name="src-url"><xsl:value-of select="SRC_URL"/></xsl:attribute> <xsl:attribute name="retrieval-time"><xsl:value-of select="DATES"/></xsl:attribute> <property> <xsl:attribute name="name"><xsl:value-of select="PROPERTY"/></xsl:attribute> <xsl:attribute name="value"><xsl:value-of select="VALUE1"/></xsl:attribute> </property> </device> </xsl:for-each> </device-list> </xsl:template> </xsl:stylesheet> А нужно получить Такое: <device-list> <device manufacturer="Alcatel" name="One_Touch_735i" src-url="http://www.j2mepolish.org/devices/Alcatel/One_Touch_735i.html" retrieval-time="2006-06-07 13:33:40"> <property name="Screen-Size (width x height)" value="128x128"/> <property name="Bits per Pixel" value="12 (4,096 colors)"/> </device> </device-list> Может ктонибуть помочь мне с етим? ![]() |
|||
|
||||
Moonfall |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.6.2006 Репутация: нет Всего: нет |
Для тех кого етот вопрос заинтересовал ответ Мне дали на форуме
http://www.stylusstudio.com/SSDN/default.asp?fid=48 Если есть другие варианты пишите |
|||
|
||||
Beard |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: 7 Всего: 9 |
Я бы написал так (не знаю, какой ответ дали на том форуме (хотя думаю, примерно такой же,
т.к. стандартная задача), т.к. ссылка не ведет прямо на ваше сообщение, а искать - лень):
И киньте, плиз, прямую ссылку - все-таки интересно ![]() |
|||
|
||||
Moonfall |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.6.2006 Репутация: нет Всего: нет |
Something like this? You may have to change the "concat" function to get the proper grouping logic.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="records" match="records/record" use="concat(SRC_URL, DATES, PHONE_NAME, MODELS)"/> <xsl:template match="/"> <device-list> <xsl:for-each select="/records/record[generate-id() = generate-id(key('records', concat(SRC_URL, DATES, PHONE_NAME, MODELS))[1])]"> <device manufacturer="{PHONE_NAME}" name="{MODELS}" src-url="{SRC_URL}" retrieval-time="{DATES}"> <xsl:variable name="keyVal" select="concat(SRC_URL, DATES, PHONE_NAME, MODELS)"/> <xsl:for-each select="/records/record[concat(SRC_URL, DATES, PHONE_NAME, MODELS) = $keyVal]"> <property name="{PROPERTY}" value="{VALUE1}"/> </xsl:for-each> </device> </xsl:for-each> </device-list> </xsl:template> </xsl:stylesheet> |
|||
|
||||
Beard |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: 7 Всего: 9 |
Да, по смыслу не отличаются...
Спасибо! PS: стоит пользоваться кнопкой "Код" для кода |
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |