powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Внутри тега - 2 других тега. Как вытащить один, зная значение другого?
2 сообщений из 2, страница 1 из 1
Внутри тега - 2 других тега. Как вытащить один, зная значение другого?
    #37873974
Фотография t00kuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорогие IT-коллеги.

В процессе работы мне потребовалось выполнить задачу, которую я не очень понимаю как решать. Я бы с удовольствием разобрался сам с нуля, но очень ограничен во временных ресурсах.

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

Итак, имеется XML со структурой, по сути описывающей таблицу:

Код: xml
1.
2.
3.
4.
5.
6.
<row>
<column> <id> 1</id> <val> A</val> </column>
<column> <id> 2</id> <val> BC</val> </column>
..............................................................
<column> <id> N</id> <val> XXZ</val> </column>
</row>


Надо перекроить всё в следующий вид, зная соответствия между значением внутри тега id первой таблицы, и тегом второй:

Код: xml
1.
2.
3.
4.
5.
6.
<row>
<first> A</first>
<alpha> BC</alpha>
..................................
<xeno> XXZ</xeno>
</row>



В данном случае для <id> 1<id> соответствует тег <first></first>.
Рядов (блоков <row>) несколько.
...
Рейтинг: 0 / 0
Внутри тега - 2 других тега. Как вытащить один, зная значение другого?
    #37874014
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<xsl:template match="column">
  <xsl:variable name="name">
    <xsl:choose>
      <xsl:when test="id = 1">
        <xsl:value-of select="'first'"/>
      </xsl:when>
      <xsl:when test="id = 2">
        <xsl:value-of select="'alpha'"/>
      </xsl:when>
      ........................
      <xsl:when test="id = N">
        <xsl:value-of select="'xeno'"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="'unknown'"/>
      </xsl:otherwise>
    <xsl:choose>
  </xsl:variable>
  <xsl:element name="{$name}">
    <xsl:value-of select="val"/>
  </xsl:element>
</xsl:template
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Внутри тега - 2 других тега. Как вытащить один, зная значение другого?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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