powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL выбор из нескольких элементов по условию
4 сообщений из 4, страница 1 из 1
XSL выбор из нескольких элементов по условию
    #35540091
abc_da
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Имею XML такой структуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?xml version="1.0" encoding="UTF-8" ?> 
<queryResult>
...
  <result>
   <heading type="java.lang.String" tag="Исполнитель">Исполнитель</heading> 
   <heading type="java.sql.Timestamp" tag="Последнее_изменение">Последнее изменение</heading> 
...
   <row idx="1">
    <Исполнитель>Иванова Т.Н.</Исполнитель> 
    <Последнее_изменение> 2008 - 09 - 08 </Последнее_изменение> 
   </row>
   <row idx="2">
    <Исполнитель>Петров В.М.</Исполнитель> 
    <Последнее_изменение> 2008 - 08 - 14 </Последнее_изменение> 
   </row>
...
 </result>
</queryResult>

Имена контейнеров внутри каждого <row> и их количество может меняться.
Мне нужно узнать тип содержимого по имени контейнера, для этого пользуюсь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<xsl:template match="/queryResult">
...
<xsl:for-each select="result/row">
  <Row>
    <xsl:for-each select="*">
      <Cell>
        <Data ss:Type="String">
          <xsl:value-of select='/queryResult/result/heading[@tag="local-name()"]/@type'/>
        </Data>
      </Cell>
    </xsl:for-each>
  </Row>
</xsl:for-each>
...
</xsl:template>

Но сравнение [@tag="local-name()"] не работает. Пробывал играть с кавычками, не помогло. Выводил /queryResult/result/heading/@tag и local-name() по отдельности, убедился, что там нужное содержимое, но как их сравнить, подскажите, пожалуйста?
...
Рейтинг: 0 / 0
XSL выбор из нескольких элементов по условию
    #35540137
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[@tag=local-name(current())]
...
Рейтинг: 0 / 0
XSL выбор из нескольких элементов по условию
    #35540143
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или так для удобства
Код: plaintext
1.
2.
3.
4.
5.
6.
    <xsl:for-each select="*">
      <xsl:variable name="lname" select='local-name()'/>
      <Cell>
        <Data ss:Type="String">
          <xsl:value-of select='/queryResult/result/heading[@tag=$lname()]/@type'/>
        </Data>
...
Рейтинг: 0 / 0
XSL выбор из нескольких элементов по условию
    #35540154
abc_da
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL выбор из нескольких элементов по условию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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