powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Одноуровневый xml с разделителями - в двухуровневый
3 сообщений из 3, страница 1 из 1
Одноуровневый xml с разделителями - в двухуровневый
    #35373348
prof_nimnul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть одноуровневая структура с разделителями:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<root>
  <pair/>
  <p> 1 </p>
  <p> 2 </p>
  <separator/>
  ...
  <pair/>
  <foo>bar</foo>
  <bar>baz</bar>
  <separator/>
  ...
</root>

Ее нужно преобразовать в двухуровневую - содержимое между pair и separator завернуть в элемент feature:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<root>
  <feature>
    <p> 1 </p>
    <p> 2 </p>
  </feature>
  <feature>
    <foo>bar</foo>
    <bar>baz</bar>
  </feature>
</root>

Я додумался только до изврата с count():

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<xsl:for-each select="pair">
   <feature>
      <xsl:variable name="sep" select="count(following-sibling::separator)"/>
      <xsl:copy-of select="following-sibling::*[not (name() = "separator"") and 
              count(following-sibling::separator) = $sep]"/>
   </feature>
</xsl:for-each>

Можно ли это сделать как-то без сравнения count(following-sibling::separator)? Например, первое что пришло мне в голову - это

Код: plaintext
<xsl:copy-of select="following-sibling::separator[1]/preceding-sibling::*"/>

Но оно, как вы понимаете, не работает.
...
Рейтинг: 0 / 0
Одноуровневый xml с разделителями - в двухуровневый
    #35374498
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
count(following-sibling::*)-count(following-sibling::separator[1]/following-sibling::*) вроде даст искомое число элементов.
...
Рейтинг: 0 / 0
Одноуровневый xml с разделителями - в двухуровневый
    #35378354
prof_nimnul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Искомое число элементов??
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Одноуровневый xml с разделителями - в двухуровневый
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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