powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / XSLT :: как объединить несколько строк
6 сообщений из 6, страница 1 из 1
XSLT :: как объединить несколько строк
    #32105301
antonz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XSLT :: как объединить несколько строк

есть такой xml
Код: plaintext
1.
2.
3.
4.
5.
<root>
   <row id_r= "12345 " text_r= "text 1  "/>
   <row id_r= "12345 " text_r= "text 2  "/>
   <row id_r= "12346 " text_r= "text 3  "/>
   <row id_r= "12345 " text_r= "text 4  "/>
</root>

как написать шаблон XSLT, который вернет
Код: plaintext
1.
2.
3.
<root>
   <row id_r= "12345 " text_r= "text 1  text  2  text  4 "/>
   <row id_r= "12346 " text_r= "text 3 "/>
</root>


Заранее спасибо!
...
Рейтинг: 0 / 0
XSLT :: как объединить несколько строк
    #32105531
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как - решилось?
...
Рейтинг: 0 / 0
XSLT :: как объединить несколько строк
    #32105758
antonz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с атрибутами не получилось
, а с тегами кажется получится
...
Рейтинг: 0 / 0
XSLT :: как объединить несколько строк
    #32105826
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запостите щаблон, как получится.

Спасибо
...
Рейтинг: 0 / 0
XSLT :: как объединить несколько строк
    #32105855
antonz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Суммирование по издателю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  <books> 
        <book> 
             <name>XML</name> 
             <publisher>Oreilly</publisher> 
        <book> 
        <book> 
             <name>Karlson</name> 
             <publisher>Malysh</publisher> 
        <book> 
        <book> 
             <name>Java</name> 
              <publisher>Oreilly</publisher> 
        <book> 
</books>


хочу получить список всех издателей с их книгами:
Oreilly:
XML
Java
Malysh:
Karlson

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version= "1 . 0 "?> 
<xsl:stylesheet...><br/> 
        
        <xsl:key name= "pub"  match= "publisher"  use= "." /> 
        
        <xsl:template match= "book" > 
               <xsl:if test= "generate-id(publisher) = generate-id(key('pub',publisher)[1 ])"> 
                      Издатель: <xsl:copy-of select= "publisher" /> 
                       <xsl:apply-templates select=  "//book[publisher=current()/publisher]"  mode= "pub"  /> 
               </xsl:if> 
        </xsl:template> 
        
        <xsl:template match= "book"  mode= "pub" > 
                книга: <xsl:value-of select= "name" /><br/> 
        </xsl:template> 
</xsl:stylesheet>

2. Как удалить дубликаты?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version= "1 . 0 " encoding= "utf-8 " ?>
<?xml-stylesheet type= "text/xsl"  href= "sss2.xslt"  ?>
<root>
   <row>
                <id_r> 12345 </id_r><text_r>text  1 </text_r>
   </row>
   <row>
                <id_r> 12345 </id_r><text_r>text  2 </text_r>
   </row>
   <row>
                <id_r> 12346 </id_r><text_r>text  3 </text_r>
   </row>
   <row>
                <id_r> 12345 </id_r><text_r>text  4 </text_r>
   </row>
</root>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version= "1 . 0 " encoding= "UTF-8 "?>
<xsl:stylesheet version= "1 . 0 " xmlns:xsl= "http://www.w3.org/1999 /XSL/Transform">
        
        <xsl:template match= "/"  priority= "1 ">
                <body>
                        <xsl:for-each select= "//row[not(preceding::id_r=id_r)]" >
                                [<xsl:value-of select= "id_r" />]<br/>
                        </xsl:for-each>
                </body>
        </xsl:template>        
        
        <xsl:template match= "id_r" >
                |<xsl:value-of select= "." />|
        </xsl:template>
        
</xsl:stylesheet>


http://www.raleigh.ru/XML - хороший форум по XML
...
Рейтинг: 0 / 0
XSLT :: как объединить несколько строк
    #32106317
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно, спасибо. Я просто в спецификации XSL Transformations (XSLT) нашел это:

G Features under Consideration for Future Versions of XSLT (Non-Normative)

a way to group together consecutive nodes having duplicate subelements or attributes;


Поэтому и подумал, что не просто все...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / XSLT :: как объединить несколько строк
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]